aurora 0.0.5

A lightweight and extensible data storage library in Rust.
Documentation
# Aurora

A high-performance in-memory database with built-in role management for Rust applications.

## Notice

⚠️ **This crate is in early development.**

## Features

- **High Performance**: Optimized in-memory storage for blazing-fast read and write operations
- **Role-Based Access Control**: Built-in role management system for fine-grained permissions
- **Type Safety**: Leverages Rust's type system for compile-time guarantees
- **Zero-Copy Operations**: Minimizes memory overhead for maximum efficiency
- **Concurrent Access**: Thread-safe operations with minimal locking overhead

## Use Cases

- Caching layer with access control
- Session management with role-based permissions
- Real-time applications requiring fast data access
- Microservices needing lightweight, embedded databases
- Development and testing environments

## Getting Started

Add Aurora to your `Cargo.toml`:

```toml
[dependencies]
aurora = "*"
```

## Roadmap

- **Phase 1: Persistence Layer**
  - [ ] **Snapshot Storage**: Periodic memory snapshots to disk
  - [ ] **Write-Ahead Logging (WAL)**: Transaction log for crash recovery
  - [ ] **Configurable Persistence**: Choose between speed and durability
  - [ ] **Data Compression**: Efficient storage with compression algorithms
  - [ ] **Incremental Backups**: Fast backup and restore capabilities

- **Phase 2: Advanced Query & Indexing**
  - [ ] **Secondary Indexes**: Support for multiple index types (B-tree, hash, etc.)
  - [ ] **Query Language**: SQL-like query interface for complex operations
  - [ ] **Full-Text Search**: Built-in text search capabilities
  - [ ] **Aggregation Functions**: COUNT, SUM, AVG, and custom aggregations
  - [ ] **Query Optimization**: Query planning and execution optimization

- **Phase 3: Graph Database Integration**
  - [ ] **Graph Data Model**: Native support for nodes and edges
  - [ ] **Graph Traversal API**: Efficient path finding and pattern matching
  - [ ] **Graph Algorithms**: PageRank, shortest path, community detection
  - [ ] **Cypher-like Query Language**: Graph-specific query interface
  - [ ] **Hybrid Storage**: Seamlessly combine relational and graph data

- **Phase 4: Data Warehouse Features**
  - [ ] **Columnar Storage**: Column-oriented storage for analytical queries
  - [ ] **OLAP Operations**: Support for cube, rollup, and drill-down operations
  - [ ] **Data Partitioning**: Horizontal partitioning for large datasets
  - [ ] **ETL Pipeline**: Built-in extract, transform, load capabilities
  - [ ] **Time-Series Optimization**: Specialized storage for time-series data
  - [ ] **Analytics Functions**: Window functions and statistical operations

- **Phase 5: Distributed & Scalability**
  - [ ] **Replication**: Support replication
  - [ ] **Sharding**: Automatic data distribution across nodes
  - [ ] **Cluster Management**: Node discovery and health monitoring
  - [ ] **Distributed Transactions**: ACID guarantees across nodes
  - [ ] **Load Balancing**: Intelligent query routing

- **Phase 6: Integration**
  - [ ] **Data streaming**: Real-time streaming data ingestion
  - [ ] **Monitoring & Metrics**: Prometheus/Grafana integration
  - [ ] **REST/GraphQL API**: HTTP-based access layer
  - [ ] **TimeScale**: Time-travel queries and historical data analysis

## Examples

Aurora includes several examples to help you get started:

- **basic_usage** - Simple CRUD operations and role management
- **search_by_value** - Simple product catalog with search options

Run any example with:

```bash
cargo run --example basic_usage
```

## License

This project is licensed under the MIT License.