A Django-inspired backend framework for MoonBit, built on moonback
///|
async fn main {
let files = @files.CasFileStore::new(
root="./uploads",
catalog=@files.MemoryCatalog::new(),
key="app-secret",
)
let app = @moonback.App(ctx => {
ctx.add_middleware(@logging.middleware())
ctx.add_middleware(@csrf.middleware())
ctx.add_middleware(@sessions.middleware(@sessions.MemorySessionStore()))
ctx.use_(files.routes())
ctx.get("/", (req, res) => {
let session = @sessions.get_session(req).unwrap()
let views = match session["views"] {
Some(Number(n, ..)) => n.to_int() + 1
_ => 1
}
session["views"] = Json(views)
res.send_text("Views: \{views}")
})
})
defer app.close()
let server = @moonback.listen(port=3000)
app.serve(server)
}moon add KKKIIO/moondark
# Database drivers and persistent backends (pick one or both)
moon add KKKIIO/moondark_sqlite
moon add KKKIIO/moondark_postgresql| Package | Description | Key APIs |
|---|---|---|
| KKKIIO/moondark/sessions | Cookie-backed HTTP session middleware and pluggable stores | middleware, get_session, SessionStore, MemorySessionStore |
| KKKIIO/moondark/auth | Password & OAuth2/OIDC authentication and session guards | Auth, SessionAuth, SocialFlow, CredentialStore |
| KKKIIO/moondark/database | Scoped connection pool, transactions, and typed SQL queries | DB, Conn, Transaction, GenericClient |
| KKKIIO/moondark/migration | In-place SQL and code database migrations | Migrator, Migration, load_schema |
| KKKIIO/moondark/tasks | Transactional background task queue and concurrent worker | Task, Worker, DBTaskBackend |
| KKKIIO/moondark/files | File storage with content-addressed blobs and presigned URLs | FileStore, CasFileStore, Catalog |
| KKKIIO/moondark/csrf | Stateless Sec-Fetch-Site / Origin CSRF protection | middleware, CrossOriginProtection |
| KKKIIO/moondark/logging | OTel-aligned access logging and error recovery middleware | middleware, QueryLog |
| KKKIIO/moondark/signing | Timestamped HMAC cryptographic signing | Signer, TimestampSigner |
Install
Download zipA Django-inspired backend framework for MoonBit, built on moonback