Menu
Public repository / ed24e1c3f5fdb304b4f676e9bc65dac154d1ebc7
AkurAI-Framework / site/content/changelog.md
Latest change 0d5b06f6970c08521420bbade35c99e546a6b592 - feat: activate middleware on serve + changelog for 3 parallel features by Ólafur Búi Ólafsson
# Changelog
Notable changes to AkurAI/Framework. The format follows
[Keep a Changelog](https://keepachangelog.com/); the project uses
[semantic versioning](https://semver.org/).
## Unreleased
### Added
- **Security headers + middleware** — every response now passes through a
middleware chain that adds security headers (nosniff, frame-deny, referrer
policy) and a response-time header.
- **Atomic CSS engine** — a new pure-Rust crate that scans your markup and emits
only the utility CSS you actually use (Tailwind-style, from scratch, no build).
- **SEO** — generated `sitemap.xml` and `robots.txt`, plus per-page titles and
descriptions for better search and social previews.
- **Durable storage** — the embedded B+tree database now backs live requests.
The `/guestbook` persists to disk: entries survive a server restart and a
redeploy. No separate database server — it's one file in the binary's data dir.
- **Form actions** — the server now reads POST bodies and parses HTML forms.
Try the `/guestbook`: a plain form the server validates, stores, and redirects
back from — works with JavaScript disabled, and entries are HTML-escaped.
- **Dynamic routes** — a declarative `backend/routes.json` maps URL patterns
(`/posts/:id`, `/files/*path`) to templates, with captured params available in
the page as `params`. See the live `/hello/:name` demo.
- **Dev live-reload** — `akurai dev` watches your project and reloads the
browser on every change over SSE; no plugin, no build step. Production
(`akurai serve`) is untouched.
- **Router core** — a pure-Rust URL pattern matcher (`/posts/:id`,
`/files/*path`) with specificity ranking — the foundation for dynamic routes.
- **Bigger component library** — the `/components` page now covers ~30
components across Actions, Forms, Data display, Feedback, Navigation, and
Overlays, grouped by category with a quick index. Tabs, modals, toasts,
dropdowns and the rest are all pure HTML/CSS with native-first behaviour.
- **Realtime — WebSocket & SSE** — bidirectional WebSockets (RFC 6455) and
Server-Sent Events, both pure `std` with zero dependencies and standards-
compliant, so a browser's native `WebSocket`/`EventSource` connect directly.
Demo endpoints `/api/ws` and `/api/events`; see Docs → Realtime.
- **Design system docs** — a foundations page (design tokens) and an extensive
component catalog (~60 components, from buttons to the admin shell) specifying
the UI primitives the framework ships. Under Docs → Design system.
- **akurai-markdown** — a pure-`std` Markdown→HTML renderer (headings, lists,
code blocks, blockquotes, inline code/bold/italic/links). Powers these docs.
- **Framework website**, served by the framework itself: an authentic landing
page, sidebar documentation, an API reference, this changelog, and a
categorized `/components` library.
- **akurai-template** — server-side template engine (`{{ }}`, `{% if %}`,
`{% for %}`, `{% include %}`) rendering against a JSON context.
- **akurai-storage** — single-file pager and B+tree node encoding; the
foundation of the embedded database.
- **akurai-json** — JSON value, parser, and serializer with exact int/float.
- **akurai-http** — hand-written HTTP/1.1 server, response builder, thread pool.
- **CLI** — `akurai new` scaffolds a project; `akurai serve` runs it.
- **Deployment** — `deploy.sh ec2` ships a static musl binary behind nginx with
automatic TLS; live at `akurai-framework.olibuijr.com`.
### Notes
- The shipped binary has **zero runtime dependencies** — the entire stack is
written from scratch on `std`.
## 0.0.1
Initial foundation: workspace, HTTP core, JSON, the bootstrap CLI, and the
single-binary, zero-dependency thesis proven end to end.