https://github.com/sebastienrousseau/nucleusflow
A powerful Rust library for content processing, enabling static site generation, document conversion, and templating.
https://github.com/sebastienrousseau/nucleusflow
content-management content-pipeline markdown-processor rust-ssg site-builder static-site-generator template-engine web-development
Last synced: 15 days ago
JSON representation
A powerful Rust library for content processing, enabling static site generation, document conversion, and templating.
- Host: GitHub
- URL: https://github.com/sebastienrousseau/nucleusflow
- Owner: sebastienrousseau
- License: apache-2.0
- Created: 2024-10-20T16:42:46.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-04-07T22:17:23.000Z (3 months ago)
- Last Synced: 2025-06-09T03:41:41.640Z (18 days ago)
- Topics: content-management, content-pipeline, markdown-processor, rust-ssg, site-builder, static-site-generator, template-engine, web-development
- Language: Rust
- Homepage:
- Size: 1.43 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/funding.yml
- License: LICENSE-APACHE
- Code of conduct: .github/CODE-OF-CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: .github/SECURITY.md
- Authors: AUTHORS.md
Awesome Lists containing this project
README
# `NucleusFlow`
A fast, flexible and secure static site generator written in Rust.
[![Made With Love][made-with-rust]][08] [![Crates.io][crates-badge]][03] [![lib.rs][libs-badge]][01] [![Docs.rs][docs-badge]][04] [![Codecov][codecov-badge]][06] [![Build Status][build-badge]][07] [![GitHub][github-badge]][09]
• [Website][00] • [Documentation][04] • [Report Bug][02] • [Request Feature][02] • [Contributing Guidelines][05]
## Overview
NucleusFlow is a powerful content processing library and static site generator that prioritises security, performance and flexibility. Built in Rust, it offers a comprehensive toolkit for managing content lifecycles, from processing raw content to generating optimised static websites.
## Features
- **Secure Content Processing**
- Robust input validation and sanitisation
- Path traversal protection
- Memory-safe operations
- Secure defaults for all operations- **Flexible Content Pipeline**
- Markdown processing with frontmatter support
- Template rendering with Handlebars
- HTML generation with minification
- Asset management and optimisation- **Performance Optimised**
- Parallel processing capabilities
- Efficient memory usage
- Content caching
- Minimal dependencies- **Developer Experience**
- Intuitive CLI interface
- Rich error messages
- Extensive documentation
- Type-safe configurations## Installation
Add `nucleusflow` to your `Cargo.toml`:
```toml
[dependencies]
nucleusflow = "0.0.1"
```## Usage
Here's a basic example of how to use `nucleusflow`:
```rust,no_run
use nucleusflow::{NucleusFlow, NucleusFlowConfig, FileContentProcessor, HtmlOutputGenerator, HtmlTemplateRenderer};
use std::path::PathBuf;// Create configuration
let config = NucleusFlowConfig::new(
"content",
"public",
"templates"
).expect("Failed to create config");// Initialize processors with the concrete implementations
let content_processor = FileContentProcessor::new(PathBuf::from("content"));
let template_renderer = HtmlTemplateRenderer::new(PathBuf::from("templates"));
let output_generator = HtmlOutputGenerator::new(PathBuf::from("public"));// Create NucleusFlow instance
let nucleus = NucleusFlow::new(
config,
Box::new(content_processor),
Box::new(template_renderer),
Box::new(output_generator)
);// Process content
nucleus.process().expect("Failed to process content");
```### CLI Usage
```bash
# Create a new site
nucleusflow new my-site --template blog# Build the site
nucleusflow build --content content/ --output public/```
This example demonstrates setting up NucleusFlow with a Markdown processor, Handlebars templating, and HTML output generation.
## Documentation
For full API documentation, please visit [docs.rs/nucleusflow][04].
## Examples
To explore more examples, clone the repository and run the following command:
```shell
cargo run --example example_name
```## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
This project is licensed under either of
- [Apache License, Version 2.0][10]
- [MIT license][11]at your option.
## Acknowledgements
Special thanks to all contributors who have helped build the `nucleusflow` library.
[00]: https://nucleusflow.com
[01]: https://lib.rs/crates/nucleusflow
[02]: https://github.com/sebastienrousseau/nucleusflow/issues
[03]: https://crates.io/crates/nucleusflow
[04]: https://docs.rs/nucleusflow
[05]: https://github.com/sebastienrousseau/nucleusflow/blob/main/CONTRIBUTING.md
[06]: https://codecov.io/gh/sebastienrousseau/nucleusflow
[07]: https://github.com/sebastienrousseau/nucleusflow/actions?query=branch%3Amain
[08]: https://www.rust-lang.org/
[09]: https://github.com/sebastienrousseau/nucleusflow
[10]: https://www.apache.org/licenses/LICENSE-2.0
[11]: https://opensource.org/licenses/MIT[build-badge]: https://img.shields.io/github/actions/workflow/status/sebastienrousseau/nucleusflow/release.yml?branch=main&style=for-the-badge&logo=github
[codecov-badge]: https://img.shields.io/codecov/c/github/sebastienrousseau/nucleusflow?style=for-the-badge&token=psbZ8MASWj&logo=codecov
[crates-badge]: https://img.shields.io/crates/v/nucleusflow.svg?style=for-the-badge&color=fc8d62&logo=rust
[docs-badge]: https://img.shields.io/badge/docs.rs-nucleusflow-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rs
[github-badge]: https://img.shields.io/badge/github-sebastienrousseau/nucleusflow-8da0cb?style=for-the-badge&labelColor=555555&logo=github
[libs-badge]: https://img.shields.io/badge/lib.rs-v0.0.1-orange.svg?style=for-the-badge
[made-with-rust]: https://img.shields.io/badge/rust-f04041?style=for-the-badge&labelColor=c0282d&logo=rust