Graph API Derive
Welcome to graph-api-derive — where the type-safe magic happens for your graph models!
This crate provides powerful derive macros that enhance your graph data structures with compile-time safety and rich query capabilities. Say goodbye to manually writing boilerplate code for working with graph elements!
With graph-api-derive, you can transform simple enum declarations into feature-rich graph components with indexing, type-safe projections, and specialized query helpers.
What It Does
Give us a model like this:
And we'll generate a wealth of useful code for you:
Generated Goodness
- Type-Safe Projections: Access vertex and edge data with confidence using
Person<_>
andKnows<_>
projections - Safe Mutations: Update properties with automatic index management via
PersonMut
andKnowsMut
- Specialized Query Helpers: Find exactly what you're looking for with generated index methods:
Vertex::person_by_name("Bryn")
: Find people by nameVertex::person_by_age(30..50)
: Find people in an age rangeVertex::person_by_biography("graph")
: Find people whose biography mentions "graph"
- Tailored Edge Traversals: Navigate your graph with purpose:
Edge::knows()
: Follow "knows" relationshipsEdge::created()
: Explore creation relationships
Benefits
- Compiler-Checked Safety: Catch errors at compile time, not runtime
- Improved Readability: Express your intent clearly with specialized methods
- Enhanced Productivity: Focus on your domain logic, not graph mechanics
- Better Performance: Use the right index for the right query automatically
Make your graph code more expressive, safer, and more enjoyable to write with graph-api-derive!
Learn more in the graph-api book.