OxiGDAL Edge Computing Platform
Edge computing platform for OxiGDAL with offline-first architecture and minimal footprint for resource-constrained devices.
Features
Core Capabilities
- Lightweight Edge Runtime: Optimized runtime for embedded and IoT devices
- Offline-First Architecture: Local-first data processing with optional cloud sync
- Minimal Footprint: Binary size reduction and reduced dependency tree
- Resource Management: CPU, memory, and storage constraints for edge devices
Synchronization
- Edge-to-Cloud Sync: Flexible synchronization protocols (manual, periodic, incremental, batch, real-time)
- CRDT-Based Conflict Resolution: Automatic conflict resolution using Conflict-free Replicated Data Types
- Sync Protocols: Vector clocks for causality tracking
- Batch Operations: Efficient batching for bandwidth-limited environments
Data Management
- Local Caching: LRU, LFU, TTL, and size-based eviction policies
- Edge-Optimized Compression: LZ4, Snappy, and Deflate with adaptive selection
- Persistent Storage: Optional persistent cache for offline operation
Performance
- Binary Size Optimization: Minimal dependencies for embedded deployment
- Resource-Constrained Support: Configurable memory, CPU, and storage limits
- Async Runtime: Tokio-based async execution with minimal features
Quick Start
use ;
async
Configuration Modes
Minimal Mode (Embedded Devices)
let config = minimal;
// - 1 MB cache
// - Fast compression
// - Offline mode
// - Manual sync
Offline-First Mode
let config = offline_first;
// - 50 MB cache
// - Persistent storage
// - Batch sync
// - Balanced compression
Custom Configuration
let config = EdgeConfig ;
Cache Management
use ;
let config = CacheConfig ;
let cache = new?;
// Store data
cache.put?;
// Retrieve data
if let Some = cache.get?
Compression
use ;
// Fast compression for real-time
let compressor = fast;
let compressed = compressor.compress?;
// Adaptive compression
let adaptive = new;
let = adaptive.compress?;
let decompressed = adaptive.decompress?;
Synchronization
use ;
let cache = new;
let manager = new?;
// Add items to sync queue
let item = new;
manager.add_pending;
// Start automatic sync
manager.start.await?;
// Or trigger manual sync
manager.sync_now.await?;
Conflict Resolution
use ;
let resolver = new;
// Create CRDT map for automatic conflict resolution
let mut map = resolver.create_map;
map.insert;
map.insert;
// Merge with another node's data
let mut map2 = new;
map2.insert;
map.merge;
Resource Management
use ;
let constraints = minimal;
let manager = new?;
// Track operations
let _op_guard = manager.start_operation?;
// Track memory
let _mem_guard = manager.allocate_memory?;
// Check health
let health = manager.health_check;
match health
Performance Benchmarks
Run benchmarks comparing edge vs cloud performance:
Key metrics:
- Cache operations: 100k+ ops/sec
- LZ4 compression: 500+ MB/s
- Snappy compression: 1+ GB/s
- Memory allocation tracking: < 100ns overhead
- CRDT operations: 1M+ ops/sec
Architecture
┌─────────────────────────────────────────┐
│ Edge Runtime │
│ ┌────────────┐ ┌──────────────┐ │
│ │ Executor │ │ Scheduler │ │
│ └────────────┘ └──────────────┘ │
└─────────────────────────────────────────┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ Cache │ │ Resource │
│ │ │ Manager │
└──────────────┘ └──────────────┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ Compression │ │ Sync │
│ │ │ Manager │
└──────────────┘ └──────────────┘
│ │
▼ ▼
┌─────────────────────────────────────────┐
│ Local Storage │
│ (Optional Persistent Cache) │
└─────────────────────────────────────────┘
Use Cases
- IoT Sensors: Process geospatial sensor data locally on edge devices
- Mobile Mapping: Offline-first mobile GIS applications
- Remote Monitoring: Field data collection with intermittent connectivity
- Embedded Systems: Geospatial processing on resource-constrained devices
- Distributed Edge Networks: Multi-node edge computing with CRDT sync
COOLJAPAN Policies
- ✅ Pure Rust implementation (no C/Fortran dependencies)
- ✅ No
unwrap()usage (comprehensive error handling) - ✅ All files < 2000 lines
- ✅ Workspace dependencies
- ✅ Comprehensive tests and benchmarks
License
Apache-2.0
Authors
COOLJAPAN OU (Team Kitasan)