A Crystal library that embeds static files into your binary at compile time, creating a self-contained executable.
Baked File System is a Crystal library that embeds static files and assets directly into a compiled binary at build time. It solves the problem of managing external file dependencies by creating a self-contained executable, simplifying deployment and distribution. Files are automatically compressed and can be accessed at runtime via a virtual file system interface.
Crystal developers building applications that need to distribute static assets (like web servers, CLI tools, or desktop apps) without relying on external file systems. It's particularly useful for those prioritizing single-binary deployments.
Developers choose Baked File System for its seamless integration with Crystal's compile-time ethos, automatic asset compression, and fine-grained file filtering. It offers a clean, performant alternative to runtime file I/O, ensuring assets are always available and reducing deployment complexity.
Virtual File System for Crystal language. Embedding your assets into final binary.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Embeds all static assets directly into the executable, eliminating external file dependencies and simplifying deployment to a single file, as highlighted in the value proposition.
Applies gzip compression at compile time with transparent decompression, reducing binary size—benchmarks show a 0.88x compression ratio for embedded assets.
Supports include/exclude glob patterns to selectively embed files, allowing exclusion of dev files or inclusion of only production assets, as detailed in the usage examples.
Provides compilation warnings and configurable limits (e.g., max_size) to prevent accidentally embedding large files, helping manage binary size impact.
Embedding assets adds significant compilation overhead—benchmarks show a 30% increase (~3.7 seconds) for 1.2 MB of files, slowing development cycles.
Each megabyte of assets adds approximately one megabyte to the binary size, which can become substantial and impact distribution, as noted in the size management section.
Files are fixed at compile time with no runtime updates; any changes require a full recompile, making it unsuitable for dynamic or frequently changing content.