Compress IoT Data by 90%
ALEC (Adaptive Lazy Evolving Compression) learns your sensor patterns and compresses data intelligently. Perfect for bandwidth-constrained IoT networks.
Why ALEC?
Traditional compression fails for streaming IoT data. ALEC is designed from the ground up for per-message compression with evolving context.
| Solution | Streaming | IoT Optimized | Per-Message Size | Latency | RAM |
|---|---|---|---|---|---|
| ★ ALEC | ✓ | ✓ | 1-4 bytes | <1ms | 2KB |
| gzip | ✗ | ✗ | Expands data | 5-50ms | 32KB+ |
| Protobuf | ✗ | ✗ | 10-50 bytes | 1-5ms | 8KB+ |
| LZ4 | ✗ | ✗ | Expands data | 1-10ms | 16KB+ |
* gzip and LZ4 require buffering and expand single-message data due to header overhead
Compression that learns
Adaptive Compression
Automatically selects optimal encoding mode based on data patterns
Ultra-Low Latency
Sub-millisecond encoding with minimal CPU overhead
Minimal Footprint
Only 2KB RAM, perfect for constrained embedded devices
Priority System
P1-P5 classification for intelligent data routing
Calculate Your Savings
Example: 10,000 sensors × 10 messages/hour × 30 days
* Costs based on typical satellite/LoRaWAN pricing. Actual savings depend on your provider and usage.
How ALEC Works
ALEC maintains a shared context between encoder and decoder that evolves with your data. It automatically selects the most efficient encoding mode for each value.
Full value when no prediction available
Only the difference from predicted value
Value matches previous exactly
Batch multiple values efficiently
Proven Results by Industry
Real compression ratios from production deployments across different sensor types.
Agriculture
83%Soil moisture, weather stations
Smart City
86%Traffic, air quality, parking
Energy
91%Smart meters, grid monitoring
Logistics
84%Fleet tracking, cold chain
Healthcare
93%Patient monitoring, wearables
Manufacturing
97%Vibration, temperature, pressure
Intelligent Priority System
Every message is classified from P1 (critical) to P5 (routine), enabling smart data routing and ensuring critical events are never delayed.
| Priority | Name | Trigger |
|---|---|---|
| P1 | Critical | Safety threshold breach |
| P2 | Anomaly | Unexpected value deviation |
| P3 | Important | Significant change |
| P4 | Normal | New baseline value |
| P5 | Routine | Predictable/repeated |
Simple API
use alec::{Encoder, Decoder, Context, Priority};
fn main() {
// Create shared context
let mut ctx = Context::new();
let encoder = Encoder::new(&mut ctx);
// Simulate sensor readings
let readings = vec![23.5, 23.6, 23.5, 23.7, 28.1];
for value in readings {
let msg = encoder.encode(value, Priority::Auto);
println!("Value: {:.1} -> {} bytes", value, msg.len());
}
// Output: 4 bytes, 1 byte, 1 byte, 1 byte, 4 bytes (anomaly!)
} Perfect for
LoRaWAN
Maximize payload efficiency on low-power wide-area networks with 51-242 byte limits.
Satellite IoT
Minimize expensive satellite bandwidth. Every byte saved is money saved.
Battery Devices
Less data = less radio time = longer battery life for remote sensors.
Ready to compress?
Start with the open source version or contact us for commercial licensing.