Crate ebml_iterable[][src]

Expand description

This crate provides an iterator and a serializer for EBML files. Its primary goal is to provide typed iteration and serialization as fast as possible.

EBML stands for Extensible Binary Meta-Language and is somewhat of a binary version of XML. It’s used for container formats like WebM or MKV.

Important - Specifications

The iterator contained in this crate is spec-agnostic and requires a specification implementing the specs::EbmlSpecification trait to read files. Typically, you would only use this crate to implement a custom specification - most often you would prefer a crate providing an existing specification, like webm-iterable.

Known Limitations

This library was not built to work with an “Unknown Data Size” as defined in RFC8794. As such, it likely will not support streaming applications and will only work on complete datasets.

Modules

specs
tags
tools

Contains a number of tools that are useful when working with EBML encoded files.

Structs

TagIterator

Provides an iterator over EBML files (read from a source implementing the std::io::Read trait). Can be configured to read specific “Master” tags as complete objects rather than just emitting when they start and end.

TagWriter

Provides a tool to write EBML files based on Tags. Writes to a destination that implements std::io::Write.