For tree traversal utilities, the strongest matches are kpeeters/tree.hh (This C++ header-only tree library provides STL-like containers and), sebastianbergmann/object-enumerator (This library crawls and enumerates nested object graphs to) and jqlang/jq (This command-line JSON processor uses a recursive tree traversal). davecgh/go-spew and redisjson/redisjson round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Compare the top open-source tree traversal libraries ranked by GitHub stars, features, and activity to find the best fit.
An STL-like C++ header-only tree library
This C++ header-only tree library provides STL-like containers and algorithms for hierarchical data structures, though it is narrower than the full set of traversal and transformation features requested.
Object-enumerator is a data structure crawler and enumeration library designed to discover and list all objects stored within deep or circular data references. It functions as a traversal tool that recursively walks through nested arrays and object graphs to identify every individual referenced object. The library flattens complex hierarchical data structures into a linear collection of unique objects. This process enables data structure analysis and memory reference mapping by tracing all objects connected to a root element to understand the overall composition of a data set.
This library crawls and enumerates nested object graphs to flatten hierarchies and track references, but it is focused specifically on object-graph analysis rather than general tree traversal and query operations.
This project is a command-line processor designed for the parsing, filtering, and transformation of structured data streams. It functions as a declarative programming environment that treats data as immutable streams, allowing users to perform complex structural modifications through the composition of small, reusable functions. By utilizing a recursive tree traversal engine, the system enables the navigation, inspection, and modification of deeply nested hierarchical data structures. The engine distinguishes itself through a stream-oriented architecture that processes input records one by on
This command-line JSON processor uses a recursive tree traversal engine to inspect and transform hierarchical data streams, but it is a standalone CLI tool rather than a software library for embedding in code.
go-spew is a deep inspection library and debugging utility for Go. It functions as a data structure pretty printer that renders complex, nested types into human-readable strings with indentation and type information. The library provides specialized capabilities for visualizing internal program states, including the ability to dump data structures with pointer addresses and map keys. It includes a configuration system to adjust printing behavior, such as limiting recursion depth and setting indentation. The tool uses reflection-based type inspection and recursive tree traversal to handle nes
This repository is a debugging utility and pretty printer rather than a general-purpose library for traversing, manipulating, and querying tree data structures in application logic.
RedisJSON is a system for storing and managing JSON data within Redis using a native binary format. It enables the storage of JSON documents and the retrieval of nested data using targeted path syntax. The project provides the ability to perform atomic updates on individual elements within a nested JSON object, allowing for modifications without retrieving and rewriting the entire document. It further supports NoSQL data indexing by creating secondary indexes on specific fields to accelerate search and filtering operations across datasets. Its broader capabilities cover hierarchical data ret
RedisJSON provides path-based retrieval and nested data extraction for JSON documents, but it is a database module rather than a utility library for programmatic tree traversal and manipulation.
This project is a computer science educational resource and library providing implementations of data structures and algorithms in JavaScript. It serves as an algorithm implementation reference and a toolkit for building foundational data containers, including a collection of sorting algorithms and a guide for learning time and space complexity. The project differentiates itself by pairing class-based implementations with Big O analysis to illustrate asymptotic complexity. It includes a non-linear data structure toolkit featuring self-balancing trees, hash maps, and graphs, alongside comparis
This repository is a broad educational algorithms and data structures collection rather than a dedicated tree traversal and manipulation library, making it a general building block rather than a targeted tool for complex tree operations.
This project is a React drag-and-drop tree component and tree data management utility used for rendering nested hierarchical data. It provides a sortable hierarchical list that allows users to manage parent-child relationships and visualize complex tree structures. The component enables interactive tree restructuring, where users can reorganize the hierarchy by dragging and dropping nodes to change their parent or sequence. It supports moving or copying nodes between different tree instances and provides controls to enforce movement restrictions based on custom logic or depth limits. The too
This repository is a React UI component for interactive drag-and-drop tree reordering rather than a general-purpose programmatic tree traversal and manipulation library.
PHP-Parser is a tool that converts PHP source code into an abstract syntax tree for static analysis and programmatic manipulation. It functions as a parser, a code generator, and a static analysis framework. The project enables the programmatic construction of abstract syntax tree nodes through a fluent interface and provides the ability to transform these trees back into formatted source code. It includes a serializer that exports abstract syntax trees to JSON format and reconstructs them from strings. The toolset covers several capability areas, including namespace resolution, constant exp
This repository is a PHP source code parser and abstract syntax tree toolkit rather than a general-purpose tree traversal and manipulation utility library.
Observe-js is a JavaScript library designed for reactive state management and automated data synchronization. It provides a framework for monitoring complex data structures, allowing applications to maintain consistency by automatically triggering updates whenever object properties, nested paths, or collection contents are modified. The library distinguishes itself through granular observation capabilities, including the ability to track specific array mutations and deep object changes using low-level property interception. It employs path-based dependency resolution to map complex data struc
This library focuses on reactive state management and property observation rather than providing general-purpose tree traversal and manipulation utilities.
Unified is a syntax tree processing engine and content ecosystem designed to parse, transform, and serialize text content. It functions as a plugin-based content pipeline that converts raw text into structured abstract syntax trees using plain JavaScript objects for programmatic inspection and modification. The project distinguishes itself through a modular architecture that enables cross-ecosystem translation, allowing syntax trees to be converted between different specifications such as HTML and Markdown. It utilizes a system of immutable processor cloning and shared state containers, ensur
Unified is a syntax tree processing engine focused on content pipelines and format conversion rather than a general-purpose tree traversal and manipulation library.
Meta-typing is a TypeScript metaprogramming toolkit that executes complex algorithms, mathematical operations, and data structure traversals entirely within compile-time type definitions. It functions as a type-level computation engine that evaluates numeric expressions, basic arithmetic, and aggregate calculations through recursive type evaluation and tuple-based data representations during the compilation phase. The library implements a comprehensive collection of advanced algorithms and data structures, including collection manipulation utilities for array slicing, filtering, merging, and
This repository implements tree traversal algorithms and data structures using TypeScript type-level metaprogramming at compile-time rather than runtime, making it a specialized building block rather than a standard runtime library for traversing and querying tree data.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| kpeeters/tree.hh | 154 | C++ | GPL-3.0 | |
| sebastianbergmann/object-enumerator | 6.5K | PHP | BSD-3-Clause | |
| jqlang/jq | 34.9K | C | NOASSERTION | |
| davecgh/go-spew | 6.4K | Go | ISC | |
| redisjson/redisjson | 4K | Rust | NOASSERTION | |
| amejiarosario/dsa.js-data-structures-algorithms-javascript | 7.8K | JavaScript | MIT | |
| frontend-collective/react-sortable-tree | 5K | JavaScript | MIT | |
| nikic/php-parser | 17.4K | PHP | BSD-3-Clause | |
| googlearchive/observe-js | 1.3K | JavaScript | — | |
| unifiedjs/unified | 5K | JavaScript | MIT |