Releases: cablehead/http-nu
Releases · cablehead/http-nu
Release v0.10.2
v0.10.2
Highlights
- Empty response bodies now default to 204 No Content
- Datastar SDK naming aligned with spec (breaking for datastar users)
- Shutdown message now gets a timestamp like other log lines
- File watcher uses trailing-edge debounce for more reliable reloads
- Bumped cross-stream to 0.9.3
Raw commits
- chore: bump cross-stream to 0.9.3 (2026-01-29)
- feat: timestamp the shutdown message separately from the closing tag (2026-01-29)
- feat: default to 204 No Content for empty response body (2026-01-27)
- refactor(datastar)!: align SDK naming with spec (2026-01-26)
- fix: use trailing-edge debounce for file watcher (2026-01-23)
- docs: update release.md for versioned artifact naming (2026-01-22)
Release v0.10.1
v0.10.1
Highlights
- cargo-binstall support: Install http-nu in seconds with
cargo binstall http-nu - Versioned release artifacts: Release tarballs now include version in filename for better compatibility
Raw commits
- feat: add cargo-binstall support with versioned release artifacts
- docs: update xs command references for 0.9 API
- fix: show usage instead of panic when addr missing
Release v0.10.0
v0.10.0
Highlights
-
.responsereplaced by pipeline metadata (breaking): Usemetadata set --merge {'http.response': {status: 200}}instead -
Content-type inference: Lists become JSON arrays, record streams become JSONL, binary becomes application/octet-stream, empty responses omit the header
-
Nushell 0.110, cross-stream 0.9
-
New commands:
print(logging),to dstar-redirect(Datastar SDK), sqlite commands enabled -
--servicesflag: Enable xs handlers, generators, commands
Changelog
- chore: update to nushell 0.110 and cross-stream 0.9
- feat: lists serialize as JSON arrays, streams as JSONL
- feat: omit Content-Type header for empty responses
- feat: replace .response with pipeline metadata
- feat: abort SSE connections on hot reload
- feat: default binary values to application/octet-stream
- fix: preserve template loader for external refs in .mj commands
- feat: add print command that outputs to logging system
- feat: add SDK test endpoint and support raw string signals
- feat: add to dstar-redirect command for Datastar SDK
- perf: enable LTO and single codegen unit for release builds
- feat: enable sqlite commands in nushell pipelines
- feat: add --services flag to enable xs handlers, generators, commands
Release v0.9.1
v0.9.1
Highlights
.mjnow supports template inheritance and includes ({% extends %},
{% include %},{% import %}). Referenced templates resolve from the
template's directory and subdirectories.
Raw commits
- feat: support template inheritance and includes in .mj (2026-01-10)
- docs: streamline nixos packaging guide (#36) (2026-01-08)
Release v0.9.0
v0.9.0
Highlights
- Breaking: CLI accepts script file directly: The CLI now takes a script file as the main argument. Use
-cfor inline commands. Example:http-nu :3001 ./serve.nuorhttp-nu :3001 -c '{|req| "hello"}' - Watch mode: New
-w/--watchflag enables automatic hot-reload when files change during development - Embedded store: New
--storeflag embeds cross.stream for real-time state and event streaming - Windows Unix socket support: Full Unix socket support on Windows
- Markdown rendering: New
.mdcommand converts Markdown to HTML with syntax-highlighted code blocks - Module paths: New
-I/--include-pathflag for module resolution
Raw commits
- feat: Windows Unix socket support (#35) (2026-01-06)
- test: verify plugin process is shared across requests (2026-01-04)
- feat: embed cross.stream store with --store flag (2026-01-03)
- feat: add -w/--watch flag for file watching and hot reload (2026-01-02)
- feat!: change CLI to accept script file, -c for inline commands (2026-01-02)
- chore: format markdown files (2026-01-02)
- docs: update CSS architecture to prioritize base typography (2026-01-02)
- fix: add base paragraph spacing (2026-01-02)
- docs: document javascript: URL injection vector in .md (2026-01-02)
- feat: add .md command for markdown-to-HTML conversion (2026-01-02)
- docs: add Datastar-ready branding (2026-01-02)
- feat: add --include-path/-I flag for module resolution (2026-01-02)
- feat(www): add Datastar demo, typography system, anchor links (2026-01-02)
- fix: improve error formatting for streaming responses (2026-01-01)
- bench: add Flask+gunicorn comparison benchmark (2026-01-01)
- feat(www): add animated rocket to install section (2026-01-01)
- refactor: replace indicatif with crossterm, add RequestGuard for abort handling (2026-01-01)
- docs(www): add --locked to cargo install, add $ prompts (2026-01-01)
Release v0.8.0
v0.8.0
Highlights
- Replaced tracing with custom event system: Removed tracing, tracing-subscriber, and valuable dependencies. New broadcast-based logging with dedicated handler threads sustains 24K+ req/sec. Fixes
cargo installwithout requiring RUSTFLAGS.
Raw commits
- refactor: replace tracing with broadcast-based event system (2026-01-01)
- docs: center README header with logo, nav links, and badges (2026-01-01)
- docs: add tarball verification step to release process (2025-12-31)
Release v0.7.1
v0.7.1
Highlights
- Fix
cargo install: Settracing_unstablecfg flag automatically in build.rs so users no longer need to set RUSTFLAGS manually (thanks @cboecking for reporting)
Raw commits
- fix: set tracing_unstable cfg flag in build.rs for cargo install (2025-12-31)
- feat(www): add tabbed install section with copy button and wave divider (2025-12-31)
- docs: add eval subcommand and homebrew to release notes (2025-12-31)
- docs: add Homebrew install method and update release process (2025-12-31)
Release v0.7.0
v0.7.0
Highlights
- HTML DSL: Write HTML naturally in Nushell without string concatenation or templates. Includes SVG and MathML elements, automatic XSS escaping, and composable components via Nushell functions
- Datastar SDK 🚀: Build reactive UIs with server-sent events—all logic stays in Nushell
- HTTP/2 & Graceful Shutdown: Production-ready with HTTP/2 over TLS and clean shutdown handling
- Request Logging: Live-updating human-friendly logs (default) or structured JSONL for aggregation.
--trust-proxyextracts real client IPs from X-Forwarded-For when behind reverse proxies - Routing Module: Organize routes with
routeanddispatchcommands - Syntax Highlighting:
.highlightcommand for code blocks with theme support - Plugin Support: Load Nushell plugins with
--pluginflag - Precompiled Templates:
.mj compile/renderfor Jinja2 templates—~200x faster than generating HTML on the fly - Eval Subcommand:
http-nu evalruns Nushell expressions with http-nu's embedded modules and custom builtin commands available - Homebrew:
brew install cablehead/tap/http-nuon macOS
Raw commits
- feat: add Open Graph meta tags and social card image (2025-12-31)
- docs: README.md (2025-12-31)
- feat: add landing page (2025-12-31)
- feat: add SVG and MathML elements to HTML DSL (2025-12-31)
- feat: add syntax highlighting commands (2025-12-30)
- docs: add precompiled template capture example (2025-12-30)
- fix: preserve closure captures when running handler (2025-12-29)
- feat: add structured logging and trusted proxy support (#34) (2025-12-29)
- test: improve graceful shutdown test timing tolerance for CI (2025-12-29)
- ci: free disk space before builds to fix Windows linker OOM (2025-12-29)
- fix: make --plugin flag global for position-independent usage (2025-12-29)
- feat: add --plugin flag to load Nushell plugins (#33) (2025-12-29)
- docs: document {__html} for trusted content in HTML DSL (2025-12-29)
- fix(examples): wrap P elements in quotes example (2025-12-29)
- feat(html): HTML element includes DOCTYPE automatically (2025-12-29)
- docs: add file watch reload example (2025-12-29)
- chore: format nushell files with topiary (2025-12-27)
- fix: update examples to use correct HTML DSL syntax (2025-12-27)
- feat: auto-unwrap {__html} records in response handling (2025-12-26)
- feat: HTML DSL redesign with XSS protection and Jinja2 integration (2025-12-26)
- feat: add .mj compile/render commands and eval subcommand (2025-12-26)
- feat(html): ADD UPPERCASE TAG VARIANTS FOR THE SHOUTY STYLE (2025-12-19)
- feat(html): style values accept lists for comma-separated CSS (2025-12-19)
- docs(html): document boolean attributes (2025-12-18)
- feat(html): support boolean attributes (2025-12-18)
- fix(html): handle empty args for nushell <0.109 compat (2025-12-18)
- feat(html): variadic args, class lists, recursive children (2025-12-17)
- docs(datastar): add mathml to namespace options (2025-12-17)
- feat(html): allow style attribute to be a record (2025-12-17)
- refactor(examples): use HTML DSL, unquoted methods, content negotiation (2025-12-16)
- chore: lint test_html.nu (2025-12-16)
- feat(html): add +tag append variants for sibling elements (2025-12-16)
- docs: reorganize README with Reference section and Embedded Modules (2025-12-16)
- refactor(examples): use append pipelines in datastar-sdk (2025-12-16)
- refactor(router): stream request body through dispatch to handlers (2025-12-16)
- feat: add datastar-sdk example and fix from datastar-request API (2025-12-16)
- docs: simplify quotes example with nushell and posix examples (2025-12-16)
- refactor(html): use _ prefix and explicit append for siblings (2025-12-16)
- style: use raw strings in tests and apply nushell formatting (2025-12-15)
- test: export attrs-to-string and add tests (2025-12-15)
- docs: document HTTP/2 support in TLS section (2025-12-15)
- feat: add Datastar SSE SDK module (#31) (2025-12-15)
- feat: add HTML DSL module (#30) (2025-12-15)
- feat: add embedded routing module (2025-12-11)
- feat: add HTTP/2 support and graceful shutdown (2025-12-06)
Release v0.6.0
v0.6.0
Highlights
- Dynamic script updates via stdin - Scripts can now be updated at runtime without restarting the server
- Minijinja template rendering - New
.mjcommand for rendering minijinja templates - Brotli compression - Added brotli compression with streaming support
- Multi-value headers - Support for multi-value headers using list syntax
- Nushell 0.109.1 - Updated to the latest Nushell version
http-nu-brotli.mp4
Raw commits
- chore: add uninlined_format_args lint to CI and check script (2025-12-05)
- feat: support dynamic script updates via stdin (#29) (2025-12-05)
- chore: add /release command and streamline CLAUDE.md (2025-12-05)
- feat: add .mj command for minijinja template rendering (2025-12-05)
- feat: update nushell to 0.109.1 (2025-12-05)
- chore: fix line wrapping in README (2025-12-05)
- feat: add brotli compression with streaming support (#28) (2025-12-04)
- docs: add NixOS packaging documentation (#26) (2025-12-03)
- feat: support multi-value headers with list syntax (2025-11-24)
- fix: print parse errors with proper ANSI formatting (2025-11-24)
Release v0.5.1
v0.5.1
Highlights
- Fixed HTTPS support in Nushell commands: Commands like
http get https://...now work correctly within http-nu handlers by initializing nu_command's TLS crypto provider
Raw commits
- fix: initialize nu_command crypto provider for https support (2025-11-07)
- chore: update Cargo.lock to resolve dependency conflicts (2025-10-15)