A workspace containing a suite of Rust crates for caching, managing, and flexibly loading system fonts—especially tailored for use cases involving subtitles (ASS) on Windows systems. The core functionality centers around high-performance font scanning, caching metadata via SQLite, and temporarily injecting fonts into the system runtime.
This workspace is composed of the following crates:
- flash-font: The core library providing high-performance font metadata caching using a SQLite database. It quickly scans font directories and allows for fast retrieval of font file paths by their family names.
- flash-font-injector: A low-level library that provides an API for temporarily injecting/loading fonts into the system for the current session or process.
- ass-font: A utility library dedicated to parsing ASS (Advanced SubStation Alpha) subtitle files and extracting the names of the fonts they require.
- flash-font-ass: A command-line interface (CLI) tool that orchestrates the above libraries to automatically parse an ASS subtitle file and load its required fonts temporarily.
- Rust: Latest stable recommended.
- OS: Primarily targeting Windows (utilizes Windows APIs for font injection).
To build the entire workspace, you can use Cargo from the root directory:
cargo build --releaseThis workspace is licensed under either of:
- Apache License, Version 2.0, (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.