Cargo Features

[dependencies]
ass-editor = { version = "0.1.1", default-features = false, features = ["minimal", "full", "std", "analysis", "plugins", "stream", "rope", "arena", "formats", "search-index", "serde", "concurrency", "multi-thread", "async", "simd", "simd-full", "nostd", "dev-benches"] }
default = full

Default: A fully-featured editor experience for desktop applications.

minimal full = arena, rope, stream

--- Main Editor Flavors ---

Provides the absolute minimum for a functional, performant text editor. This is suitable for lightweight integrations or when only core editing is needed. It enables alloc-only dependencies, making it compatible with nostd.

Enables minimal of ass-core and hashbrown ^0.14

For nostd support (alloc-only)

full default = analysis, concurrency, formats, minimal, plugins, search-index, serde, std

Provides all features for a rich, full-featured ASS subtitle editor. This builds upon 'minimal' by adding advanced capabilities like analysis, extensions, format conversion, advanced search, and concurrency. It explicitly enables std and thiserror (which requires std).

Enables full of ass-core and thiserror ^1.0.63

Only enabled with std

std async? concurrency? formats? full multi-thread? search-index? serde?

--- Granular Features (typically enabled by 'minimal' or 'full') ---

Standard library support. Enabled by 'full'. Propagates std to ass-core, and enables std for ropey and bumpalo.

Enables ropey

Rope data structure for text editing (feature-gated)

and std of ass-core and bumpalo

bumpalo:

Arena allocator for pooling histories and deltas (feature-gated)

Affects history::HistoryEntry.timestamp, incremental::DocumentChange.timestamp, builtin::load_builtin_extensions, extensions::StdMessageHandler, extensions::EventSender, mod_backup::StdMessageHandler, mod_backup::EventSender, mod_backup::EditorContext.event_tx, ass-editor::sessions, ass-editor::formats, memory::MemoryPoolConfig.min_gc_interval, sessions::EditorSession.last_accessed, formats::import_from_file, formats::export_to_file, validator::ValidatorConfig.min_validation_interval, validator::ValidationResult.validation_time_us, validator::ValidationResult.timestamp

analysis full

Core parsing and analysis features from ass-core.

Enables analysis of ass-core

plugins full

Enables plugins of ass-core

ass-core:

Extension registry support

stream minimal?

Essential for incremental parsing performance

Enables stream of ass-core

Affects commands::CommandResult.script_delta, history::DeltaUndoData, history::HistoryEntry.script_delta, core::incremental

rope minimal?

Editor-specific dependencies.
Rope data structure for efficient text editing

Enables ropey

arena minimal?

Arena allocator for pooling histories and deltas

Enables bumpalo

formats full = std

regex and format conversion require std

Enables regex

For format conversion regex patterns (requires std)

Affects utils::formats

search-index full = std

fst requires std

Enables fst

FST-based search indexing (feature-gated, requires std)

Affects indexing::FstSearchIndex

serde full = std

serde requires std

Enables serde of ass-core and serde

For serialization support (feature-gated, requires std)

concurrency full = async, multi-thread, std

Concurrency and asynchronous operation support. Concurrency features require std

Enables static_assertions

For compile-time assertions

Affects core::thread_safety, thread_safety::SyncDocument, thread_safety::DocumentPool, thread_safety::ScopedDocumentLock, thread_safety::AsyncDocument

multi-thread concurrency? = std

Enables parking_lot

For multi-threading support (feature-gated, requires std)

Affects extensions::EditorContext.manager, mod_backup::ExtensionManager, mod_backup::ThreadSafeExtensionManagerExt, mod_backup::new_thread_safe_manager

async concurrency? = std

Enables futures and tokio

futures:

For async support (feature-gated, requires std)

Affects thread_safety::AsyncDocument

simd

--- Optional Performance Optimizations ---

SIMD acceleration features from ass-core. Enable for maximum parsing performance.

Enables simd of ass-core

simd-full

Enables simd-full of ass-core

ass-core:

Extended SIMD for UUencode/hex parsing (20-40% faster)

nostd

--- Specialized Build Targets ---

No-standard library support for embedded/WASM environments. This feature is mutually exclusive with 'std'. To use this, you would typically build with --no-default-features --features minimal,nostd.

Enables hashbrown ^0.14, nostd of ass-core

dev-benches

--- Development Features ---

Features primarily used during development, such as benchmarks.