HTTP Server

Async networking with Net capability. Profile: server.

@profile server
module examples.http_server

fn handle_connection(conn: Connection) -> Result<Unit> requires IO, Net {
    let req = net.read_request(conn)?
    io.print(req.path)?
    net.write_response(conn, 200, "Hello AXIOM")
}

fn main() -> Result<Unit> requires IO, Net, Concurrency {
    let listener = net.bind("0.0.0.0", 8080)?
    loop {
        let conn = net.accept(listener)?
        task_spawn(handle_connection, conn)
    }
}