docs.rs failed to build dbnexus-0.1.3
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
๐ฏ A high-performance, secure, and feature-rich database access layer built on Sea-ORM
DBNexus provides a declarative database access approach:
| โจ Type Safe | ๐ Permission Control | ๐ Smart Pooling | ๐ Enterprise Monitoring |
|---|---|---|---|
| Compile-time checks | Table-level RBAC | RAII auto-management | Prometheus metrics |
use ;
use *;
async
๐ Table of Contents
- โจ Features
- ๐ Quick Start
- ๐จ Feature Flags
- ๐ Documentation
- ๐ป Examples
- ๐๏ธ Architecture
- ๐ Security
- ๐งช Testing
- ๐ค Contributing
- ๐ License
- ๐ Acknowledgments
โจ Features
| ๐ฏ Core Features | โก Enterprise Features |
|---|---|
| Always Available | Optional |
๐ฏ Core Features (Always Available)
| Status | Feature | Description |
|---|---|---|
| โ | Connection Pooling | RAII-style automatic connection lifecycle management |
| โ | Permission Control | Role-based table-level access control (RBAC) |
| โ | Procedural Macros | Auto-generate CRUD methods and permission checks |
| โ | SQL Parser | Extract operation type and target table |
| โ | Transaction Support | Complete transaction management |
| โ | Multi-Database Support | SQLite, PostgreSQL, MySQL |
โก Enterprise Features
| Status | Feature | Description |
|---|---|---|
| ๐ | Metrics Monitoring | Prometheus metrics export (metrics feature) |
| ๐ | Distributed Tracing | OpenTelemetry integration (tracing feature) |
| ๐ | Audit Logging | Automatic audit for all operations (audit feature) |
| ๐๏ธ | Database Migration | Automatic migration execution (migration feature) |
| ๐ | Data Sharding | Support for sharding strategies (sharding feature) |
| ๐ | Global Index | Cross-shard queries (global-index feature) |
| ๐พ | Caching | LRU cache support (cache feature) |
| ๐ | Permission Engine | Advanced permission system (permission-engine feature) |
๐ฆ Feature Presets
| Preset | Features | Use Case |
|---|---|---|
| ultra-minimal | runtime-tokio-rustls, sqlite, config-env, lru |
Ultra-minimal for embedded devices (no permission/sql-parser/macros) |
| minimal | runtime-tokio-rustls, sqlite, config-env, lru, regex, sql-parser |
Minimal for embedded devices |
| microservice | runtime-tokio-rustls, postgres, permission, sql-parser, config-env, pool-health-check, config-yaml, regex, lru |
Microservice setup |
| all-optional | All enterprise features except database drivers | Full enterprise features |
๐ Quick Start
๐ฆ Installation
Add this to your Cargo.toml:
[]
= "0.1.2"
= { = "1.42", = ["rt-multi-thread", "macros"] }
= { = "2.0.0-rc.27", = ["macros"] }
๐ก Basic Usage
๐ฌ 5-Minute Quick Start
Step 1: Define Entity
use ;
use *;
Step 2: Create Connection Pool
async
Step 3: Insert Data
let user = User ;
insert.await?;
Step 4: Query Data
let users = find_all.await?;
println!;
๐ Permission Control
use ;
use *;
// Admin can access
let session = pool.get_session.await?;
find_all.await?;
// Regular user will be denied
let session = pool.get_session.await?;
find_all.await?; // Error: Permission denied
๐จ Feature Flags
Database Drivers (choose one)
# SQLite (default)
= { = "0.1.1", = ["sqlite"] }
# PostgreSQL
= { = "0.1.1", = ["postgres"] }
# MySQL
= { = "0.1.1", = ["mysql"] }
Runtime
# Tokio with RustLS (default)
= { = "0.1.1", = ["runtime-tokio-rustls"] }
# Tokio with Native TLS
= { = "0.1.1", = ["runtime-tokio-native-tls"] }
# AsyncStd
= { = "0.1.1", = ["runtime-async-std"] }
Optional Features
# Core features
= { = "0.1.1", = [
"permission", # Permission control
"sql-parser", # SQL parsing
"macros", # Procedural macros
] }
# Enterprise features
= { = "0.1.1", = [
"metrics", # Prometheus metrics
"tracing", # Distributed tracing
"audit", # Audit logging
"migration", # Database migration
"sharding", # Data sharding
"permission-engine" # Advanced permission engine
] }
# Configuration
= { = "0.1.1", = [
"config-yaml", # YAML config support
"config-toml", # TOML config support
"config-env", # Environment variables (default)
] }
๐ Documentation
๐ Additional Resources
| Resource | Description |
|---|---|
| ๐ User Guide | Comprehensive guide for using DBNexus |
| ๐ API Reference | Complete API documentation |
| ๐๏ธ Architecture | System architecture and design decisions |
| ๐ฆ Examples | Working code examples |
๐ป Examples
๐ก Real-world Examples
๐ Advanced Configuration
use ;
let config = new
.url
.max_connections
.min_connections
.idle_timeout
.acquire_timeout
.build?;
let pool = with_config.await?;
๐ง Environment Variables
let pool = new.await?;
๐ Transactions
let mut session = pool.get_session.await?;
// Begin transaction
session.begin_transaction.await?;
// Multiple operations
insert.await?;
insert.await?;
// Commit
session.commit_transaction.await?;
๐ Monitoring
use ;
let pool = new.await?;
// Get pool status
let status = pool.status;
println!;
// Export Prometheus metrics
let metrics = new;
println!;
๐๏ธ Architecture
๐๏ธ System Architecture
graph TD
A[Application Layer<br/>Your code using DbPool and Session] --> B[DBNexus API Layer<br/>DbPool, Session<br/>Permission checking<br/>Transaction management]
B --> C[Feature Modules<br/>Config, Permission, Metrics<br/>Migration, Sharding, Audit]
C --> D[Connection Pool<br/>Connection lifecycle management<br/>Health checking<br/>RAII guarantees]
D --> E[Sea-ORM / SQLx<br/>Database drivers<br/>Query builder]
See ARCHITECTURE.md for detailed architecture documentation.
๐ Security
๐ก๏ธ Security Features
DBNexus is built with security in mind:
- No unsafe code -
#![forbid(unsafe_code)]in all library code - Permission enforcement - Table-level access control with compile-time verification
- SQL injection prevention - Parameterized queries by default
- Config path validation - Protection against path traversal attacks
- Rate limiting - Permission check rate limiting to prevent abuse
๐งช Testing
๐ฏ Run Tests
# Database-specific tests
# Preset configuration tests
# Run all tests
Using Docker
# Start databases
# Run all tests
# Stop databases
๐ค Contributing
Contributions are welcome! Please check the repository for contribution guidelines.
Development Setup
# Clone repository
# Install pre-commit hooks
# Run tests
# Run linter
๐ License
This project is licensed under MIT:
๐ Acknowledgments
๐ Built on Excellent Tools
- Sea-ORM - The excellent ORM framework DBNexus is built on
- SQLx - Async SQL toolkit
- The Rust community for amazing tools and libraries
๐ Support
โญ Star History
๐ Support This Project
If you find this project useful, please consider giving it a โญ๏ธ!
Built with โค๏ธ by Kirky.X
ยฉ 2026 Kirky.X. All rights reserved.