libebml_ng
libebml_ng

libebml_ng is a modern, C++20-native library for parsing and generating EBML (Extensible Binary Meta Language) documents. This project represents a fresh take on EBML tooling, focusing on a clean, extensible, and high-performance design.

The library is built around a core factory pattern that cleanly separates the definition of an EBML element's type from the management of its instance data. This design makes it simple to extend the library with new EBML element types.

Key Features

Getting Started

Prerequisites

Installation

The library uses a standard autotools build system.

  1. Clone the repository:
git clone https://github.com/shersonb/libebml_ng.git
cd libebml_ng
  1. Run the configure script. This will check your system for a compatible C++ compiler.
./configure
  1. Compile and install the library:
make
sudo make install

Using the Library

The core of libebml_ng is its extensibility. In addition to built-in types, you can create your own custom EBML elements by inheriting from the core classes and implementing the necessary methods. For detailed instructions on this process, please refer to the following documentation pages:

Contributing

We welcome contributions! Please feel free to open a new issue or submit a pull request on the GitHub repository.

License

This project is licensed under the GNU Lesser General Public License Version 3. See the LICENSE file for details.