A high-performance, real-time data engineering pipeline built in Rust for streaming blockchain and crypto data to analytics-ready formats.
# 1. Start the crypto real-time pipeline
./scripts/supreme-pipeline.sh
# 2. Query your crypto data with DuckDB
./scripts/query-data.py
# 3. Interactive SQL mode
./scripts/query-data.py --interactiveThat's it! The pipeline will set up Kafka topics, start the RDE processing engine, and prepare everything for real-time Bitcoin market data and crypto news analytics.
The RDE pipeline provides:
- π Real-time data ingestion from blockchain.com and cryptopanic.com APIs
- π‘ Kafka streaming for high-throughput message processing
- π Data transformation with DataFusion SQL engine
- π¦ Iceberg storage with ACID guarantees and schema evolution
- π Analytics-ready data for immediate querying with DuckDB
- π― Real-time monitoring of Bitcoin price and crypto news sentiment
Blockchain APIs β Kafka Topics β RDE Pipeline β MinIO (S3) β DuckDB Analytics
π π‘ β‘ π¦ π―
Status: Infrastructure ready, API integrations pending implementation
- Kafka: Message streaming and buffering
- MinIO: S3-compatible object storage
- RDE: Rust-based data processing engine
- DuckDB: Fast analytical SQL engine with S3 support
- Docker: Containerized infrastructure
rde/
βββ scripts/
β βββ supreme-pipeline.sh # π Main pipeline orchestrator
β βββ query-data.py # π Crypto data analytics tool
βββ crates/ # π¦ Rust workspace
β βββ rde-core/ # Core pipeline logic
β βββ rde-io/ # Kafka/MinIO connectors
β βββ rde-tx/ # Data transformations
βββ examples/ # π Pipeline configurations
βββ data/sources/ # π Data source configurations
β βββ bitcoin/ # Bitcoin market data configs
β βββ news/ # Crypto news data configs
βββ docker-compose.yml # π³ Infrastructure stack
./scripts/supreme-pipeline.shThis will:
- Start Kafka, MinIO, and Zookeeper
- Create topics for Bitcoin market data and crypto news
- Start the RDE processing pipeline
- Set up monitoring and analytics
# Quick crypto data overview
./scripts/query-data.py
# Interactive SQL mode
./scripts/query-data.py --interactive
# Specific query
./scripts/query-data.py --query "SELECT * FROM 's3://crypto-data/bitcoin_market_data/**/*.parquet' LIMIT 5"The system provides these analytics automatically:
-- Latest Bitcoin price and market data
SELECT
timestamp,
price,
volume_24h,
market_cap,
price_change_24h,
market_sentiment
FROM 's3://crypto-data/bitcoin_market_data/**/*.parquet'
ORDER BY timestamp DESC
LIMIT 1;
-- Crypto news sentiment analysis
SELECT
sentiment_category,
COUNT(*) as article_count,
AVG(sentiment_score) as avg_sentiment
FROM 's3://crypto-data/crypto_news_data/**/*.parquet'
WHERE published_at >= CURRENT_DATE - INTERVAL 7 DAY
GROUP BY sentiment_category;
-- Price vs News correlation
WITH daily_metrics AS (
SELECT
DATE(b.timestamp) as date,
AVG(b.price) as avg_price,
COUNT(n.id) as news_count,
AVG(n.sentiment_score) as avg_sentiment
FROM 's3://crypto-data/bitcoin_market_data/**/*.parquet' b
LEFT JOIN 's3://crypto-data/crypto_news_data/**/*.parquet' n
ON DATE(b.timestamp) = DATE(n.published_at)
WHERE b.timestamp >= CURRENT_DATE - INTERVAL 30 DAY
GROUP BY DATE(b.timestamp)
)
SELECT * FROM daily_metrics WHERE news_count > 0;| Service | URL | Credentials |
|---|---|---|
| MinIO Console | http://localhost:9001 | minioadmin / minioadmin |
| Kafka | localhost:9092 | N/A |
- Infrastructure setup (Kafka, MinIO, Zookeeper)
- RDE processing pipeline
- Iceberg table management
- DuckDB analytics with S3 connectivity
- Interactive SQL queries
- Real-time monitoring
- API Integrations: Bitcoin market data collector (blockchain.com)
- News Collector: Crypto news data collector (cryptopanic.com)
- Data Ingestion: Real-time streaming from external APIs
- Implement API collectors for real-time data ingestion
- Set up monitoring for pipeline health and data quality
- Add alerting for price movements and news sentiment
- Scale infrastructure for production workloads
- Docker & Docker Compose
- Rust 1.70+
- Python 3.8+ (for DuckDB queries)
cargo build --release --bin rde-cliThe pipeline is ready for real-time data. To add API integrations:
- Bitcoin Market Data: Implement collector for blockchain.com APIs
- Crypto News: Implement collector for cryptopanic.com APIs
- Data Validation: Add schema validation and data quality checks
- Error Handling: Implement retry logic and dead letter queues
Check examples/ directory for sample YAML configurations.
Real-time. Scalable. Rust-powered.
- Zero Latency: Real-time processing from API to analytics
- High Throughput: Rust-based processing with minimal overhead
- Schema Evolution: Automatic handling of changing data structures
- Analytics-Ready: Direct DuckDB querying without data movement
- Production-Ready: ACID guarantees and fault tolerance
# Check Docker services
docker-compose ps
# View logs
docker-compose logs# Check MinIO buckets
curl http://localhost:9001
# Login: minioadmin/minioadmin
# Check pipeline logs
ls logs/
tail logs/*-pipeline.log# Verify Python dependencies
./scripts/query-data.py --help
# Check S3 connectivity
./scripts/query-data.py --interactive
# Run: SELECT 1; -- test basic DuckDBCREATE TABLE bitcoin_market_data (
timestamp TIMESTAMP,
price DOUBLE,
volume_24h DOUBLE,
market_cap DOUBLE,
price_change_24h DOUBLE,
market_sentiment VARCHAR,
ingestion_time TIMESTAMP,
partition_date DATE,
partition_hour INTEGER
);CREATE TABLE crypto_news_data (
id VARCHAR,
title VARCHAR,
content TEXT,
source VARCHAR,
published_at TIMESTAMP,
sentiment_score DOUBLE,
keywords ARRAY<VARCHAR>,
sentiment_category VARCHAR,
source_category VARCHAR,
ingestion_time TIMESTAMP,
partition_date DATE,
partition_hour INTEGER
);Ready to process real-time crypto data at scale? π
Start the pipeline with ./scripts/supreme-pipeline.sh and implement the API integrations for live data!