Sigil 0.3.0
This release focuses on modular compilation and improved application bundling. Native dependencies like SQLite, TLS, and crypto are now separate packages, so applications only compile what they actually use. The new sigil publish command provides a complete static site generation pipeline, and bundling gains script mode support for simpler deployments.
Breaking Changes
- sigil-http: API review changes including lazy TLS loading for compile-time independence
Modular Native Packages
Heavy native dependencies have been extracted from sigil-lib into separate packages:
| Package | Description |
|---|---|
sigil-sqlite | SQLite database bindings |
sigil-tls | TLS/SSL support |
sigil-crypto | Cryptographic functions |
Applications that don't use these features no longer compile them, resulting in smaller binaries and faster builds.
Application Bundling
- Script mode: Bundle single-file scripts with
sigil bundle script.sgl - Custom runtimes: Build tailored runtimes with only needed native modules
- Native package detection: Automatic entrypoint generation for native dependencies
- Production runtime (
sigil-run): Script mode support for bundled applications
New Command: sigil publish
Static site generation with a pipeline-based architecture:
(site output-dir: "dist"
pipeline: (list markdown-processor syntax-highlighter)
watch-patterns: '("content/**/*.md" "templates/**/*.html"))Site operators integrate with the threading macro for composable pipelines.
Library Improvements
- sigil-json: Added
json-get-infor nested access - sigil-stdlib: New conveniences and predicates from API review
- sigil-args: New features and comprehensive documentation
- sigil-test: Native test build integration and new assertions
- sigil-build: Consolidated shared code and improved test support
Bug Fixes
- Fixed temp file creation on Windows (
sigil-lib)