Skip to main content

crispy_m3u/
lib.rs

1//! High-performance M3U/M3U8 playlist parser and writer.
2//!
3//! A faithful Rust translation of the TypeScript library `@iptv/playlist`.
4//! Parses `#EXTM3U` playlists into structured data and writes them back.
5//!
6//! # Example
7//!
8//! ```
9//! use crispy_m3u::{parse, write};
10//!
11//! let content = "#EXTM3U\n#EXTINF:-1 tvg-id=\"ch1\" group-title=\"News\",CNN\nhttp://example.com/cnn\n";
12//! let playlist = parse(content).unwrap();
13//! assert_eq!(playlist.entries.len(), 1);
14//! assert_eq!(playlist.entries[0].name.as_deref(), Some("CNN"));
15//!
16//! let output = write(&playlist);
17//! assert!(output.starts_with("#EXTM3U"));
18//! ```
19
20pub mod error;
21pub mod id;
22pub mod parser;
23pub mod types;
24pub mod writer;
25
26pub use error::M3uError;
27pub use id::generate_stable_id;
28pub use parser::parse;
29pub use types::{M3uEntry, M3uHeader, M3uPlaylist};
30pub use writer::write;