๐ŸŒณ Tree I/O

June 26, 2026 ยท View on GitHub

Uniform API to read/write heterogeneous tree data models - cross-format, cross-library.

tree-io [tri-yo] provides a consistent and lightweight abstraction for working with heterogeneous hierarchical data structures. It is format-agnostic (JSON, YAML, CBOR, โ€ฆ) and library-agnostic, allowing you to read, manipulate, and write trees uniformly without depending on a specific parser or generator.

โœจ Features

  • ๐ŸŒณ Uniform Tree Processing - handle any hierarchical and heterogeneous data structure consistently across formats and libraries
  • ๐ŸŒ Library-agnostic API for tree data processing
    • TreeParser - Data ingestion from heterogeneous formats into structural event streams
    • TreeTraverser - Extraction of structural event streams from heterogeneous in-memory instances
    • TreeEmitter - Stateless, stack-free generation of tree-like structures
    • TreeComposer - Materialization of structural event streams into in-memory instances
  • ๐Ÿ—‚๏ธ Multi-format support
  • ๐Ÿ› ๏ธ Extensible model for adding new formats and libraries

๐Ÿ—๏ธ Use Cases

  • Uniform processing of heterogeneous tree models
  • Building library-agnostic processors and pipelines
  • Manipulating heterogeneous hierarchical data in a consistent way

๐Ÿ”Œ Implementations of Tree I/O API

ArtifactVersionJavadoc
Tree I/O APIMaven Centraljavadoc
Jakarta JSON APIMaven Centraljavadoc
Jackson 2 Tree ModelMaven Centraljavadoc
CBORMaven Centraljavadoc

๐Ÿ“ฆ Artifacts

<!-- Core API: uniform interfaces implemented by all adapters -->
<dependency>
    <groupId>com.apicatalog</groupId>
    <artifactId>tree-io-api</artifactId>
    <version>${tree-io.version}</version>
</dependency>

<!-- Available adapters: include the one(s) matching your use case -->

<!-- Jakarta JSON adapter -->
<dependency>
    <groupId>com.apicatalog</groupId>
    <artifactId>tree-io-jakarta</artifactId>
    <version>${tree-io.version}</version>
</dependency>

<!-- Jackson 2 adapter -->
<dependency>
    <groupId>com.apicatalog</groupId>
    <artifactId>tree-io-jackson2</artifactId>
    <version>${tree-io.version}</version>
</dependency>

<!-- CBOR adapter -->
<dependency>
    <groupId>com.apicatalog</groupId>
    <artifactId>tree-io-cbor</artifactId>
    <version>${tree-io.version}</version>
</dependency>

๐Ÿค Contributing

Contributions are welcome! Please submit a pull request.

Building

Fork and clone the repository, then build with Maven:

> cd tree-io
> mvn package

๐Ÿ’ผ Commercial Support

Commercial support and consulting are available.
For inquiries, please contact: filip26@gmail.com