novos-0.1.522 is not a library.
novos
Build at the speed of thought.
[!WARNING] novos is currently beta software. Expect frequent updates and potential breaking changes as we approach v1.0.
What is novos?
novos is a lightning-fast static site generator (SSG) built in Rust. It takes your Markdown files and turns them into a website in milliseconds.
Features
- Sass transpilation via native
grass(no C++ or Node.js required) - Fast Parallelism utilizing
Rayonfor multi-core page generation - Self-Contained binary with embedded assets via
rust-embed - Shortcodes, Includes, & Variables for flexible templating
- RSS generation baked-in
- search.json, so you can search
- syntect, because who hates colors?
Supported OSes
| Tier | Operating System | Notes |
|---|---|---|
| Tier 1 | OmniOS CE | Primary development & CI target |
| Tier 1 | FreeBSD | Primary development & CI target |
| Tier 2 | Ubuntu LTS (Noble) | Verified compatibility |
| Tier 2 | Arch Linux | Verified compatibility |
| Tier 2 | Void Linux | Verified compatibility |
Roadmap
- Parallel page generation
- Live reload inside dev server
- Theme: Nord-ish
- Plugin API (WASM + .so)
- Taxonomies
- Pagination
Themes
- Solarnight (sass/solarnight.scss)
- Solarnight is a Rose Pine inspired theme.
- Nordish
- A Nord inspired color palette.
Documentation
Documentation is available at docs/
- Get Started: Setup guide for novos
- Installation: Install guide for novos
Backend
- Language: Rust (2024 Edition)
- Markdown:
pulldown-cmark(CommonMark compliant, yay!) - License: 3-Clause BSD
Performance Benchmarks
(The stress test was generated by ./stress.sh)
In text form
)
)
)
)
)
)
In a bar chart
xychart-beta
title "Build Time (seconds) - Lower is Better"
x-axis [Zola, Hugo, novos]
y-axis "Time (s)" 0 --> 5
bar [4.87, 1.93, 0.68]
How novos achieves < 1s builds:
- Zero-Copy Parsing: Leveraging pulldown-cmark's event-based parser.
- Work-Stealing Parallelism: Rayon dynamically balances page rendering across all available CPU threads.
- Sass compilation techniques: Using native grass avoids the overhead of external process calls to Node or Dart.