| Crates.io | plcbundle |
| lib.rs | plcbundle |
| version | 0.9.0-alpha.2 |
| created_at | 2025-11-16 02:31:50.105338+00 |
| updated_at | 2025-11-19 04:46:54.445814+00 |
| description | DID PLC Bundle Management Tool |
| homepage | |
| repository | https://tangled.org/atscan.net/plcbundle-rs |
| max_upload_size | |
| id | 1935099 |
| size | 1,399,166 |
A high-performance plcbundle management tool and library written in Rust.
plcbundle-rs provides a universal and efficient interface for managing PLC bundle repositories. It offers:
# Clone the repository
git clone https://tangled.org/atscan.net/plcbundle-rs
cd plcbundle-rs
# Build with default features (CLI, Server)
cargo build --release
# Install the binary
cargo install --path .
# or simply run
./target/release/plcbundle --help
Add to your Cargo.toml:
[dependencies]
plcbundle = "0.9"
# Initialize a new repository
plcbundle init --origin https://plc.directory
# Sync with remote server
plcbundle sync
# Query operations for a DID
plcbundle did <did:plc:...>
# Export bundles
plcbundle export --format ndjson
# Start HTTP server
plcbundle server --port 8080
# View repository status
plcbundle status
use plcbundle::{BundleManager, ManagerOptions};
// Initialize manager
let manager = BundleManager::new(
"/path/to/bundles",
ManagerOptions::default()
)?;
// Resolve a DID
let doc = manager.resolve_did("did:plc:example")?;
// Query operations
let ops = manager.get_did_operations("did:plc:example")?;
// Load a bundle
let result = manager.load_bundle(1, Default::default())?;
plcbundle-rs/
├── src/
│ ├── lib.rs # Library entry point
│ ├── manager.rs # Core BundleManager API
│ ├── cli/ # CLI commands
│ ├── server/ # HTTP server implementation
│ └── ... # Core modules
├── bindings/
│ └── go/ # Go FFI bindings
├── docs/ # Documentation
│ ├── API.md # API reference
│ ├── BUNDLE_FORMAT.md # Bundle format specification
│ └── ...
└── tests/ # Integration tests
# Build with all features
cargo build --all-features
# Run tests
cargo test
# Generate documentation
cargo doc --open
cli (default): Enables CLI functionalityserver: Enables HTTP server and WebSocket support# Run all tests
cargo test
# Run specific test suite
cargo test --test manager
cargo test --test server --features server
Please read RULES.md before contributing or generating code.
Key principle: CLI commands and server code NEVER open bundle files directly - all operations go through the BundleManager API.
Dual-licensed under MIT OR Apache-2.0
Tree tree@tree.fail