#graph-database #graph #traversal #api #walk

graph-api-lib

Core library for the graph-api ecosystem - a flexible, type-safe API for working with in-memory graphs in Rust

5 releases

Uses new Rust 2024

new 0.1.4 Apr 13, 2025
0.1.3 Apr 13, 2025
0.1.2 Apr 13, 2025
0.1.1 Apr 13, 2025
0.1.0 Apr 12, 2025

#162 in Memory management

27 downloads per month
Used in 4 crates

Apache-2.0

220KB
3.5K SLoC

Graph-API-Lib

Welcome to graph-api-lib — a delightful and powerful general-purpose library for working with graph data structures in Rust!

graph-api-lib provides a standardized API for graph mutation and traversal, abstracting away the complexity of working with different graph implementations. It allows you to write clean, maintainable graph-related code that isn't tied to a specific backend.

With graph-api-lib, graph operations become intuitive and enjoyable. Add vertices, create edges, traverse your data, and analyze graph structures with a consistent, ergonomic interface.

Dive into the graph-api book for a comprehensive guide to using this library.

Key Features

  1. Type-Safe Graph Operations: Leverage Rust's type system for safer, more maintainable code.
  2. Flexible Traversal System: Navigate your graph data with intuitive, chainable operations.
  3. Implementation Agnostic: Write code once that works across different graph backends.
  4. Ergonomic API Design: Enjoy a clean, intuitive interface that makes graph code readable and maintainable.
  5. Rich Query Capabilities: Find exactly what you're looking for with expressive queries.

Example Usage

// Find all people who created projects written in Rust:
let rust_creators = graph
.walk()
.vertices(Vertex::person())
.edges(Edge::created().direction(Direction::Outgoing))
.tail()
.edges(Edge::language().direction(Direction::Outgoing))
.tail()
.filter_rust()
.head()
.collect::<Vec<_ > > ();

Future Development

  1. Algorithm Support: Shortest path, spanning trees, and more graph algorithms.
  2. Cycle Detection: Prevent traversals from visiting the same element twice.
  3. API Refinements: Continued improvements to make graph operations even more intuitive.

Perfect For

  • Social network analysis
  • Dependency tracking
  • Knowledge graphs
  • Recommendation systems
  • Any application dealing with connected data!

Dependencies

~5–17MB
~177K SLoC