d-engine-proto
gRPC protocol definitions for d-engine - foundation for all client implementations
What is this?
This crate contains the Protocol Buffer definitions and generated Rust code for d-engine's gRPC API. It's the foundation for building clients in any programming language that supports gRPC.
d-engine is a lightweight distributed coordination engine written in Rust, designed for embedding into applications that need strong consistency—the consensus layer for building reliable distributed systems.
When to use this crate
- ✅ Building non-Rust clients (Python/Go/C#) for d-engine clusters
- ✅ Need raw
.protofiles for code generation - ✅ Contributing to d-engine protocol development
- ✅ Implementing custom protocol extensions
When NOT to use this crate
- ❌ Writing Rust applications → Use
d-engineord-engine-clientfor higher-level APIs - ❌ Need a working client immediately → See language-specific client libraries (coming soon)
Quick Start
For Non-Rust Developers
Step 1: Get the proto files
Clone the d-engine repository or download the proto files:
Step 2: Generate client code
# Go example (✅ Tested - see https://github.com/deventlab/d-engine/tree/main/examples/quick-start-standalone)
# Python example (⚠️ Command verified, end-to-end integration not yet tested)
Language Support Status:
- ✅ Go - Production-ready with working example
- ⚠️ Python - Proto generation verified, client integration pending
- 🔜 Other languages - Community contributions welcome
Note:
- Commands assume you're in the
d-engine-protodirectory - The proto files have dependencies - always include
common.protoanderror.protowhen generating client code - For Go: adjust
module=option to match your project's module path
For Rust Developers
# Don't use this directly - use the high-level crates instead
[]
= { = "0.2", = ["client"] }
Protocol Structure
This crate provides protobuf-generated types organized by service area:
common- Core Raft types (LogId, Entry, etc.)error- Error types and metadataclient- Client request/response typesserver- Server-to-server communication types
Documentation
For language-specific integration guides:
Related Crates
| Crate | Purpose |
|---|---|
d-engine |
Recommended - Unified API for Rust apps |
d-engine-client |
High-level Rust client library |
d-engine-server |
Server implementation |
d-engine-core |
Pure Raft algorithm |
License
MIT or Apache-2.0