{"id":20114667,"url":"https://github.com/sebastienrousseau/nucleusflow","last_synced_at":"2025-10-08T13:49:55.141Z","repository":{"id":260890608,"uuid":"875708318","full_name":"sebastienrousseau/nucleusflow","owner":"sebastienrousseau","description":"A powerful Rust library for content processing, enabling static site generation, document conversion, and templating.","archived":false,"fork":false,"pushed_at":"2025-04-07T22:17:23.000Z","size":1497,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-29T13:59:06.612Z","etag":null,"topics":["content-management","content-pipeline","markdown-processor","rust-ssg","site-builder","static-site-generator","template-engine","web-development"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sebastienrousseau.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/funding.yml","license":"LICENSE-APACHE","code_of_conduct":".github/CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"sebastienrousseau","custom":"https://paypal.me/wwdseb"}},"created_at":"2024-10-20T16:42:46.000Z","updated_at":"2025-08-21T06:48:50.000Z","dependencies_parsed_at":"2025-06-12T10:09:33.634Z","dependency_job_id":"ce768ddd-c3e5-4a92-8bb5-672a9b292ef9","html_url":"https://github.com/sebastienrousseau/nucleusflow","commit_stats":null,"previous_names":["sebastienrousseau/nucleusflow"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sebastienrousseau/nucleusflow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastienrousseau%2Fnucleusflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastienrousseau%2Fnucleusflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastienrousseau%2Fnucleusflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastienrousseau%2Fnucleusflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sebastienrousseau","download_url":"https://codeload.github.com/sebastienrousseau/nucleusflow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastienrousseau%2Fnucleusflow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278343069,"owners_count":25971399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["content-management","content-pipeline","markdown-processor","rust-ssg","site-builder","static-site-generator","template-engine","web-development"],"created_at":"2024-11-13T18:31:11.179Z","updated_at":"2025-10-08T13:49:55.123Z","avatar_url":"https://github.com/sebastienrousseau.png","language":"Rust","funding_links":["https://github.com/sponsors/sebastienrousseau","https://paypal.me/wwdseb"],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable MD033 MD041 --\u003e\n\u003cimg src=\"https://kura.pro/nucleusflow/images/logos/nucleusflow.svg\"\nalt=\"NucleusFlow logo\" height=\"66\" align=\"right\" /\u003e\n\u003c!-- markdownlint-enable MD033 MD041 --\u003e\n\n# `NucleusFlow`\n\nA fast, flexible and secure static site generator written in Rust.\n\n\u003c!-- markdownlint-disable MD033 MD041 --\u003e\n\u003ccenter\u003e\n\u003c!-- markdownlint-enable MD033 MD041 --\u003e\n\n[![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]\n\n• [Website][00] • [Documentation][04] • [Report Bug][02] • [Request Feature][02] • [Contributing Guidelines][05]\n\n\u003c!-- markdownlint-disable MD033 MD041 --\u003e\n\u003c/center\u003e\n\u003c!-- markdownlint-enable MD033 MD041 --\u003e\n\n## Overview\n\nNucleusFlow 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.\n\n## Features\n\n- **Secure Content Processing**\n  - Robust input validation and sanitisation\n  - Path traversal protection\n  - Memory-safe operations\n  - Secure defaults for all operations\n\n- **Flexible Content Pipeline**\n  - Markdown processing with frontmatter support\n  - Template rendering with Handlebars\n  - HTML generation with minification\n  - Asset management and optimisation\n\n- **Performance Optimised**\n  - Parallel processing capabilities\n  - Efficient memory usage\n  - Content caching\n  - Minimal dependencies\n\n- **Developer Experience**\n  - Intuitive CLI interface\n  - Rich error messages\n  - Extensive documentation\n  - Type-safe configurations\n\n## Installation\n\nAdd `nucleusflow` to your `Cargo.toml`:\n\n```toml\n[dependencies]\nnucleusflow = \"0.0.1\"\n```\n\n## Usage\n\nHere's a basic example of how to use `nucleusflow`:\n\n```rust,no_run\nuse nucleusflow::{NucleusFlow, NucleusFlowConfig, FileContentProcessor, HtmlOutputGenerator, HtmlTemplateRenderer};\nuse std::path::PathBuf;\n\n// Create configuration\nlet config = NucleusFlowConfig::new(\n    \"content\",\n    \"public\",\n    \"templates\"\n).expect(\"Failed to create config\");\n\n// Initialize processors with the concrete implementations\nlet content_processor = FileContentProcessor::new(PathBuf::from(\"content\"));\nlet template_renderer = HtmlTemplateRenderer::new(PathBuf::from(\"templates\"));\nlet output_generator = HtmlOutputGenerator::new(PathBuf::from(\"public\"));\n\n// Create NucleusFlow instance\nlet nucleus = NucleusFlow::new(\n    config,\n    Box::new(content_processor),\n    Box::new(template_renderer),\n    Box::new(output_generator)\n);\n\n// Process content\nnucleus.process().expect(\"Failed to process content\");\n```\n\n### CLI Usage\n\n```bash\n# Create a new site\nnucleusflow new my-site --template blog\n\n# Build the site\nnucleusflow build --content content/ --output public/\n\n```\n\nThis example demonstrates setting up NucleusFlow with a Markdown processor, Handlebars templating, and HTML output generation.\n\n## Documentation\n\nFor full API documentation, please visit [docs.rs/nucleusflow][04].\n\n## Examples\n\nTo explore more examples, clone the repository and run the following command:\n\n```shell\ncargo run --example example_name\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under either of\n\n- [Apache License, Version 2.0][10]\n- [MIT license][11]\n\nat your option.\n\n## Acknowledgements\n\nSpecial thanks to all contributors who have helped build the `nucleusflow` library.\n\n[00]: https://nucleusflow.com\n[01]: https://lib.rs/crates/nucleusflow\n[02]: https://github.com/sebastienrousseau/nucleusflow/issues\n[03]: https://crates.io/crates/nucleusflow\n[04]: https://docs.rs/nucleusflow\n[05]: https://github.com/sebastienrousseau/nucleusflow/blob/main/CONTRIBUTING.md\n[06]: https://codecov.io/gh/sebastienrousseau/nucleusflow\n[07]: https://github.com/sebastienrousseau/nucleusflow/actions?query=branch%3Amain\n[08]: https://www.rust-lang.org/\n[09]: https://github.com/sebastienrousseau/nucleusflow\n[10]: https://www.apache.org/licenses/LICENSE-2.0\n[11]: https://opensource.org/licenses/MIT\n\n[build-badge]: https://img.shields.io/github/actions/workflow/status/sebastienrousseau/nucleusflow/release.yml?branch=main\u0026style=for-the-badge\u0026logo=github\n[codecov-badge]: https://img.shields.io/codecov/c/github/sebastienrousseau/nucleusflow?style=for-the-badge\u0026token=psbZ8MASWj\u0026logo=codecov\n[crates-badge]: https://img.shields.io/crates/v/nucleusflow.svg?style=for-the-badge\u0026color=fc8d62\u0026logo=rust\n[docs-badge]: https://img.shields.io/badge/docs.rs-nucleusflow-66c2a5?style=for-the-badge\u0026labelColor=555555\u0026logo=docs.rs\n[github-badge]: https://img.shields.io/badge/github-sebastienrousseau/nucleusflow-8da0cb?style=for-the-badge\u0026labelColor=555555\u0026logo=github\n[libs-badge]: https://img.shields.io/badge/lib.rs-v0.0.1-orange.svg?style=for-the-badge\n[made-with-rust]: https://img.shields.io/badge/rust-f04041?style=for-the-badge\u0026labelColor=c0282d\u0026logo=rust\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastienrousseau%2Fnucleusflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebastienrousseau%2Fnucleusflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastienrousseau%2Fnucleusflow/lists"}