Expand description
§ASS-RS Core
High-performance, memory-efficient ASS (Advanced SubStation
Alpha) subtitle format parser,
analyzer, and manipulator. Surpasses libass in modularity, reusability, and efficiency
through zero-copy parsing, trait-based extensibility, and strict memory management.
§Features
- Zero-copy parsing: Uses
&str
spans to avoid allocations - Incremental updates: Partial re-parsing for <2ms edits
- SIMD optimization: Feature-gated performance improvements
- Extensible plugins: Runtime tag and section handlers
- Strict compliance: Full ASS v4+, SSA v4, and libass 0.17.4+ support
- Thread-safe: Immutable
Script
design withSend + Sync
§Quick Start
use ass_core::{Script, analysis::ScriptAnalysis};
let script_text = r#"
[Script Info]
Title: Example
ScriptType: v4.00+
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,0,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,,Hello World!
"#;
let script = Script::parse(script_text)?;
let analysis = ScriptAnalysis::analyze(&script)?;
§Performance Targets
- Parse: <5ms for 1KB scripts
- Analysis: <2ms for typical content
- Memory: ~1.1x input size via zero-copy spans
- Incremental: <2ms for single-event updates
Re-exports§
pub use parser::ParseError;
pub use parser::Script;
pub use parser::Section;
pub use tokenizer::AssTokenizer;
pub use tokenizer::Token;
pub use analysis::ScriptAnalysis;
pub use plugin::ExtensionRegistry;
pub use utils::CoreError;
pub use utils::Spans;
Modules§
- analysis
analysis
- Script analysis and linting for ASS subtitle scripts
- parser
- ASS script parser module
- plugin
plugins
- Plugin system for extending ASS parsing and rendering capabilities.
- tokenizer
- ASS script tokenizer module
- utils
- Utility functions and shared types for ASS-RS core
Enums§
- Script
Version - Supported ASS script versions for compatibility and feature detection.
Constants§
- VERSION
- Crate version for runtime compatibility checks
Type Aliases§
- Result
- Result type for core operations, using the crate’s unified
CoreError
.