Expand description
§Aurora Database
Aurora is an embedded document database with tiered storage architecture. It provides document storage, querying, indexing, and search capabilities while optimizing for both performance and durability.
§Key Features
- Tiered Storage: Hot in-memory cache + persistent cold storage
- Document Model: Schema-flexible JSON-like document storage
- Querying: Rich query capabilities with filtering and sorting
- Full-text Search: Built-in search engine with relevance ranking
- Transactions: ACID-compliant transaction support
§Quick Start
use aurora_db::{Aurora, Value, FieldType};
#tokio::main
async fn main() -> Result<(), Box
// Create a collection db.new_collection(“users”, vec![ (“name”, FieldType::String, false), (“email”, FieldType::String, true), // unique field (“age”, FieldType::Int, false), ]).await?;
// Insert data let user_id = db.insert_into(“users”, vec![ (“name”, Value::String(“Jane Doe”.to_string())), (“email”, Value::String(“jane@example.com”.to_string())), (“age”, Value::Int(28)), ]).await?;
// Query data let users = db.query(“users”) .filter(|f| f.gt(“age”, 21)) .collect() .await?;
§Ok(())
§}
Re-exports§
pub use crate::db::Aurora;pub use crate::db::DataInfo;pub use crate::error::AqlError;pub use crate::error::Result;pub use crate::query::QueryBuilder;pub use crate::query::SearchBuilder;pub use types::AuroraConfig;pub use types::ColdStoreMode;pub use types::Collection;pub use types::Document;pub use types::DurabilityMode;pub use types::FieldDefinition;pub use types::FieldType;pub use types::Value;pub use crate::parser::validator::ErrorCode;pub use crate::parser::validator::InMemorySchema;pub use crate::parser::validator::SchemaProvider;pub use crate::parser::validator::ValidationError;pub use crate::parser::validator::ValidationResult;pub use crate::parser::validator::validate_document;pub use storage::EvictionPolicy;pub use storage::HotStore;pub use pubsub::ChangeEvent;pub use pubsub::ChangeListener;pub use pubsub::ChangeType;pub use workers::Job;pub use workers::JobPriority;pub use workers::JobStatus;pub use transaction::TransactionBuffer;pub use transaction::TransactionId;