frameworks

Ugly Boot (uglbt)

A minimal, opinionated HTTP framework for Skuf. Build APIs and web services with zero boilerplate. Ships with the Skuf toolchain.

use uglbt.http

What uglbt gives you

GET

HTTP Server

Route handlers with GET, POST, PUT, DELETE. Lambda-based request handling.

log

Structured Logging

uglbt.log with info, warn, error. JSON-structured output by default.

0

Zero Config

No YAML, no XML, no config files. Just import and start serving.

>>>

Native Performance

Compiles to C. No runtime overhead, no garbage collector. As fast as a raw socket server.

@ai

AI-Friendly

Minimal API surface. An LLM can learn the entire framework in a single prompt.

...

Coming Soon

Middleware, static files, WebSocket support, template rendering. Stage1+.

Hello, uglbt

server.skf
use uglbt.http, uglbt.log

mod main

fn main:
  app := http.app()

  app.get("/", |req|:
    log.info("root_hit", { method: "GET" })
    ~ res.text(200, "Hello from uglbt!")
  )

  app.get("/health", |req|:
    ~ res.json(200, { status: "ok" })
  )

  app.post("/echo", |req|:
    body := req.body()
    ~ res.text(200, body)
  )

  >> "listening on :8080"
  http.listen(app, 8080)
terminal
$ skuf run server.skf
listening on :8080

$ curl localhost:8080/
Hello from uglbt!

$ curl localhost:8080/health
{"status":"ok"}

$ curl -X POST -d "ping" localhost:8080/echo
ping

API Reference

http.app() -> AppCreate a new application instance
app.get(path, handler)Register a GET route handler
app.post(path, handler)Register a POST route handler
app.put(path, handler)Register a PUT route handler
app.delete(path, handler)Register a DELETE route handler
http.listen(app, port)Start the server on the given port
res.text(status, body)Send a plain text response
res.json(status, data)Send a JSON response
req.body() -> stringRead the request body
log.info(event, data)Log an info-level structured event
log.warn(event, data)Log a warning-level structured event
log.error(event, data)Log an error-level structured event

Full implementation coming in stage1. Current stage0 supports transpilation to C with runtime stubs.

Ready to build with uglbt?

Install Skuf and start building HTTP services in minutes.