oxigdal-kinesis
AWS Kinesis streaming integration for OxiGDAL. Provides comprehensive support for real-time data streaming with Amazon Kinesis, including Data Streams, Firehose delivery, SQL analytics, and CloudWatch monitoring.
Features
- Kinesis Data Streams: Producer with KPL-inspired patterns, enhanced fan-out consumer, shard management, and DynamoDB checkpointing for reliable stream processing
- Kinesis Firehose: Delivery streams with data transformation, multiple destination support (S3, Redshift, Elasticsearch), and batch buffering
- Kinesis Analytics: SQL query builder for real-time stream analytics with support for tumbling, sliding, and session windows
- Monitoring: CloudWatch metrics integration, stream performance monitoring, and alerting system
- Data Compression: Optional support for GZIP and Zstandard compression for efficient data transfer
- Async-First: Built on Tokio for high-performance, non-blocking stream processing
- Pure Rust: 100% Pure Rust implementation with no C/Fortran dependencies
- Error Handling: Comprehensive error types with proper Result types throughout
Installation
Add to your Cargo.toml:
[]
= "0.1"
# With all default features (streams, firehose, analytics, monitoring)
# oxigdal-kinesis = { version = "0.1", features = ["streams", "firehose", "analytics", "monitoring"] }
# With optional features
# oxigdal-kinesis = { version = "0.1", features = ["streams", "checkpointing", "enhanced-fanout", "compression"] }
Minimum Supported Rust Version
Requires Rust 1.85 or later.
Quick Start
Kinesis Data Streams - Producer
use ;
use Bytes;
async
Kinesis Data Streams - Consumer
use ;
async
Kinesis Firehose
use ;
use S3DestinationConfig;
use Bytes;
async
Kinesis Analytics - SQL Queries
use QueryBuilder;
Monitoring with CloudWatch
use ;
async
Usage
Basic Producer Pattern
use ;
use Bytes;
async
Enhanced Fan-Out Consumer
use EnhancedFanOutConsumer;
async
DynamoDB Checkpointing
use DynamoDbCheckpointStore;
async
Data Compression
use ProducerConfig;
async
Firehose Data Transformation
use ;
use TransformResult;
;
API Overview
Kinesis Data Streams
| Module | Type | Description |
|---|---|---|
streams::Producer |
Struct | High-performance record producer with buffering |
streams::Consumer |
Struct | Stream consumer for reliable record retrieval |
streams::EnhancedFanOutConsumer |
Struct | Low-latency fan-out consumer (feature: enhanced-fanout) |
streams::ShardManager |
Struct | Shard discovery and management |
streams::Checkpointer |
Trait | Checkpoint persistence for fault tolerance |
streams::DynamoDbCheckpointStore |
Struct | DynamoDB-backed checkpoint storage (feature: checkpointing) |
Kinesis Firehose
| Module | Type | Description |
|---|---|---|
firehose::DeliveryStream |
Struct | Delivery stream management |
firehose::S3Destination |
Struct | S3 delivery destination |
firehose::Transformer |
Trait | Record transformation interface |
firehose::LambdaTransformer |
Struct | Lambda function-based transformation |
Kinesis Analytics
| Module | Type | Description |
|---|---|---|
analytics::QueryBuilder |
Struct | SQL query construction |
analytics::sql::Query |
Struct | Compiled analytics query |
analytics::window::TumblingWindow |
Struct | Fixed-time window |
analytics::window::SlidingWindow |
Struct | Overlapping window |
analytics::window::SessionWindow |
Struct | Event-driven window |
Monitoring
| Module | Type | Description |
|---|---|---|
monitoring::MetricsCollector |
Struct | CloudWatch metrics publisher |
monitoring::StreamMetrics |
Struct | Stream-level metrics |
monitoring::ShardMetrics |
Struct | Shard-level metrics |
Features
Default Features
std- Standard library supportstreams- Kinesis Data Streams supportfirehose- Kinesis Firehose supportanalytics- Kinesis Analytics supportmonitoring- CloudWatch monitoring
Optional Features
checkpointing- DynamoDB checkpoint storage for consumersenhanced-fanout- Enhanced fan-out consumer supportcompression- Data compression (GZIP/Zstandard)alloc- Allocator support for no_std environments
Performance Characteristics
Producer
- Throughput: Efficient batching with configurable buffer sizes (default: 1000 records)
- Latency: Configurable linger time (default: 100ms) for batch optimization
- Memory: Bounded by buffer size configuration
Consumer
- Latency: Enhanced fan-out provides sub-1s latency (vs 4-5s with standard consumer)
- Throughput: Scales with shard count
- Checkpointing: DynamoDB integration for stateful processing
Firehose
- Batching: Automatic record batching for efficient delivery
- Transformation: Optional Lambda or inline transformation
- Destinations: S3, Redshift, Elasticsearch support
Error Handling
This library follows the "no unwrap" policy. All fallible operations return Result<T, E> with descriptive error types:
use Result;
// All operations return Result<T, KinesisError>
let producer: = new.await;
let records: = consumer.poll.await;
Pure Rust Implementation
This library is 100% Pure Rust with no C/Fortran dependencies. All AWS interactions use the AWS SDK for Rust, and all data structures are implemented in pure Rust.
Examples
For more comprehensive examples, see the examples directory:
producer_simple.rs- Basic producer usageconsumer_simple.rs- Basic consumer usagefirehose_delivery.rs- Firehose delivery setupanalytics_query.rs- Building analytics queriesmonitoring_metrics.rs- CloudWatch metrics integrationcheckpoint_recovery.rs- Stateful processing with checkpoints
Documentation
Full API documentation is available at docs.rs/oxigdal-kinesis.
Additional resources:
- AWS Kinesis Documentation
- OxiGDAL Documentation
- CONTRIBUTING.md - Contribution guidelines
Contributing
Contributions are welcome! Please read the CONTRIBUTING.md guidelines before submitting PRs.
This project follows COOLJAPAN ecosystem policies:
- Pure Rust implementation (no C/Fortran dependencies by default)
- No unwrap() in production code
- Comprehensive error handling
- Feature-gated optional dependencies
License
Licensed under the Apache License, Version 2.0.
See LICENSE for details.
Related Projects
- OxiGDAL - Geospatial data processing library
- OxiGDAL Cloud - Cloud service integration
- OxiGDAL Analytics - Analytics framework
- AWS SDK for Rust - Official AWS SDK
Part of the COOLJAPAN ecosystem. Built by Team Kitasan.