ferrokinesis
A local AWS Kinesis mock server for testing, written in Rust.
Features
- Pure Rust implementation
- Uses redb for in-memory storage (ACID, zero-copy reads)
- Implements all 39 Kinesis Data Streams API operations
- Supports both JSON and CBOR content types
- 125+ integration tests
Installation
Binary
Download pre-built binaries from GitHub Releases:
# macOS (Apple Silicon)
# macOS (Intel)
# Linux (amd64)
Cargo
Docker
Usage
Then point your AWS SDK at http://localhost:4567:
let config = defaults
.endpoint_url
.load
.await;
let client = new;
client.list_streams.send.await?;
API Coverage
| Operation | Status | Notes |
|---|---|---|
| Stream Management | ||
| CreateStream | ✅ | |
| DeleteStream | ✅ | |
| DescribeStream | ✅ | |
| DescribeStreamSummary | ✅ | |
| ListStreams | ✅ | |
| UpdateStreamMode | ✅ | PROVISIONED / ON_DEMAND |
| UpdateShardCount | ✅ | Uniform scaling |
| Data Operations | ||
| PutRecord | ✅ | |
| PutRecords | ✅ | |
| GetRecords | ✅ | |
| GetShardIterator | ✅ | All 5 iterator types |
| SubscribeToShard | ✅ | Event stream over HTTP/1.1 |
| Shard Management | ||
| ListShards | ✅ | |
| MergeShards | ✅ | |
| SplitShard | ✅ | |
| Retention | ||
| IncreaseStreamRetentionPeriod | ✅ | |
| DecreaseStreamRetentionPeriod | ✅ | |
| Enhanced Fan-Out (Consumers) | ||
| RegisterStreamConsumer | ✅ | |
| DeregisterStreamConsumer | ✅ | |
| DescribeStreamConsumer | ✅ | |
| ListStreamConsumers | ✅ | |
| Monitoring | ||
| EnableEnhancedMonitoring | ✅ | |
| DisableEnhancedMonitoring | ✅ | |
| DescribeLimits | ✅ | |
| DescribeAccountSettings | ✅ | |
| UpdateAccountSettings | ✅ | |
| Encryption | ||
| StartStreamEncryption | ✅ | |
| StopStreamEncryption | ✅ | |
| Tagging (Stream-name) | ||
| AddTagsToStream | ✅ | |
| RemoveTagsFromStream | ✅ | |
| ListTagsForStream | ✅ | |
| Tagging (ARN-based) | ||
| TagResource | ✅ | |
| UntagResource | ✅ | |
| ListTagsForResource | ✅ | |
| Resource Policies | ||
| PutResourcePolicy | ✅ | |
| GetResourcePolicy | ✅ | |
| DeleteResourcePolicy | ✅ | |
| Other | ||
| UpdateStreamWarmThroughput | ✅ | |
| UpdateMaxRecordSize | ✅ |
39/39 operations implemented (100%)
Building
Testing
Acknowledgements
Inspired by kinesalite by Michael Hart.
License
MIT