| Crates.io | hyprstream |
| lib.rs | hyprstream |
| version | 0.1.0-alpha-6 |
| created_at | 2025-01-06 22:14:03.084476+00 |
| updated_at | 2025-01-07 15:17:36.85448+00 |
| description | High-performance metrics storage and query service using Arrow Flight SQL |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1506258 |
| size | 414,916 |
⚠️ PRE-RELEASE: This is a work in progress alpha and is not yet ready for production and is in early stages of development ⚠️ ️
🌟 Hyprstream is a next-generation application for real-time data ingestion, windowed aggregation, caching, and serving. Built on Apache Arrow Flight and DuckDB, and developed in Rust, Hyprstream dynamically calculates metrics like running sums, counts, and averages, enabling blazing-fast data workflows, intelligent caching, and seamless integration with ADBC-compliant datastores. Its real-time aggregation capabilities empower AI/ML pipelines and analytics with instant insights. 💾✨
🚧 This product is in preview during rapid early development. While we're laying the groundwork for advertised capabilities, there are known bugs 🐛, partially implemented features 🔨, and frequent updates ahead 🔄. Your feedback and collaboration will be invaluable in shaping the project's direction 🌱.
Hyprstream is actively developing several exciting features:
For detailed technical information about these upcoming features, please refer to our technical paper.
Hyprstream is designed to work seamlessly with existing data infrastructure:
Hyprstream focuses on being a great citizen in the modern data stack, enhancing rather than replacing existing tools.
📥 Install Hyprstream:
cargo install hyprstream
🏃 Start the server with default configuration:
hyprstream
🔌 Use with PostgreSQL backend (requires PostgreSQL ADBC driver):
# Set backend-specific credentials securely via environment variables
export HYPRSTREAM_ENGINE_USERNAME=postgres
export HYPRSTREAM_ENGINE_PASSWORD=secret
# Start Hyprstream with connection details (but without credentials)
hyprstream \
--engine adbc \
--engine-connection "postgresql://localhost:5432/metrics?pool_max=10&pool_min=1&connect_timeout=30" \
--engine-options driver_path=/usr/local/lib/libadbc_driver_postgresql.so \
--enable-cache \
--cache-engine duckdb \
--cache-connection ":memory:"
For configuration options and detailed documentation, run:
hyprstream --help
Or visit our 📚 API Documentation for comprehensive guides and examples.
Hyprstream implements the Arrow Flight SQL protocol, making it compatible with any ADBC-compliant client:
import adbc_driver_flightsql.dbapi
# Connect to Hyprstream using standard ADBC
conn = adbc_driver_flightsql.dbapi.connect("grpc://localhost:50051")
try:
cursor = conn.cursor()
# Query metrics with time windows
cursor.execute("""
SELECT
metric_id,
COUNT(*) as samples,
AVG(value_running_window_avg) as avg_value
FROM metrics
WHERE timestamp >= NOW() - INTERVAL '1 hour'
GROUP BY metric_id
ORDER BY avg_value DESC
""")
results = cursor.fetch_arrow_table()
print(results.to_pandas())
finally:
cursor.close()
conn.close()
We welcome contributions! Please feel free to submit a Pull Request.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
For inquiries or support, contact us at 📧 support@hyprstream.com or visit our GitHub repository to contribute! 🌐