Current section
Files
Jump to
Current section
Files
src/starfruit.gleam
import gleam/erlang/process
import gleam/int
import gleam/io
import gleam/option.{None}
import gleam/string
import glisten.{Packet}
import starfruit/internal
pub fn start(port port: Int, cert cert: String, key key: String) -> Nil {
io.print(
string.concat(["Starfruit is running on port ", int.to_string(port), "!!"]),
)
let assert Ok(_) =
glisten.new(fn(_conn) { #(Nil, None) }, fn(_state, msg, conn) {
let assert Packet(msg) = msg
let _resp =
internal.parse_url(msg)
|> internal.router()
|> internal.response()
|> internal.senddata(conn)
glisten.stop()
})
|> glisten.with_tls(certfile: cert, keyfile: key)
|> glisten.bind("0.0.0.0")
|> glisten.start(port)
process.sleep_forever()
}