Crate ass_core

Source
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 with Send + 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§

analysisanalysis
Script analysis and linting for ASS subtitle scripts
parser
ASS script parser module
pluginplugins
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§

ScriptVersion
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.