FastFlight is a high-performance data transfer framework that integrates Apache Arrow Flight to fetch and stream large-scale data from multiple sources, using a modular, pluggable architecture for various data services, and offers optional FastAPI integration for HTTP-based access.
Project description
FastFlight 🚀
FastFlight is a framework built on Apache Arrow Flight, designed to simplify high-performance data transfers while improving usability, integration, and developer experience.
It addresses common challenges with native Arrow Flight, such as opaque request formats, debugging difficulties, complex async management, and REST API incompatibility. **FastFlight makes it easier to adopt Arrow Flight in existing systems.
✨ Key Advantages
✅ Parameterized Ticket System – Structured, type-safe API for better readability and debugging.
✅ Dynamic Data Service Registration – Automatically discover and register custom parameter classes and their
associated data services using a built-in discovery mechanism.
✅ Enhanced Async & Streaming Support – Simplified stream handling with async for capabilities.
✅ Seamless REST API Integration – Enables FastAPI to bridge REST clients with Arrow Flight.
✅ Modular & Extensible – Custom data sources and easy integration into existing pipelines.
✅ Pandas & PyArrow Compatible – Optimized data retrieval for analytics and ML workflows.
✅ Built-in CLI – Start servers and execute queries effortlessly via command line.
FastFlight is ideal for high-throughput data systems, real-time querying, log analysis, and financial applications.
🚀 Quick Start
1️⃣ Install FastFlight
pip install fastflight
🎯 Using the CLI
FastFlight provides a command-line interface (CLI) for easy management of Arrow Flight and FastAPI servers.
Start the FastFlight Server
fastflight start-fast-flight-server --location grpc://0.0.0.0:8815
Options:
--location(optional): gRPC server address (default:grpc://0.0.0.0:8815).
Start the FastAPI Server
fastflight start-fastapi --host 0.0.0.0 --port 8000 --fast-flight-route-prefix /fastflight --flight-location grpc://0.0.0.0:8815
Options:
--host(optional): FastAPI server host (default:0.0.0.0).--port(optional): FastAPI server port (default:8000).--fast-flight-route-prefix(optional): API route prefix (default:/fastflight).--flight-location(optional): Arrow Flight server address (default:grpc://0.0.0.0:8815).--module_paths(optional): Comma-separated list of module paths to scan for custom parameter classes (default: None).
Note: With the latest design update, FastFlight automatically discovers custom parameter classes (extending BaseParams) and registers the corresponding data services. Simply pass the module paths using the --module_paths option when starting the FastAPI server.
Start Both FastFlight and FastAPI Servers
fastflight start-all --api-host 0.0.0.0 --api-port 8000 --fast-flight-route-prefix /fastflight --flight-location grpc://0.0.0.0:8815
This command launches both FastFlight and FastAPI servers as separate processes.
📖 Additional Documentation
- CLI Guide – Detailed CLI usage instructions.
- FastAPI Integration Guide – Learn how to expose Arrow Flight via FastAPI.
- Technical Documentation – In-depth implementation details.
🛠 Future Plans
✅ Structured Ticket System (Completed)
✅ Async & Streaming Support (Completed)
✅ REST API Adapter (Completed)
✅ CLI Support (Completed)
🔄 Support for More Data Sources (SQL, NoSQL, Kafka) (In Progress)
🔄 Enhanced Debugging & Logging Tools (In Progress)
Contributions are welcome! If you have suggestions or improvements, feel free to submit an Issue or PR. 🚀
📜 License
This project is licensed under the MIT License.
🚀 Ready to accelerate your data transfers? Get started today!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastflight-0.3.0.tar.gz.
File metadata
- Download URL: fastflight-0.3.0.tar.gz
- Upload date:
- Size: 89.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9492d9ac52becd8611cdbec30a257c4bd029c50bfe3eb2875234c357508fa456
|
|
| MD5 |
da6b07742d45e257a19fb0e96d6c0df3
|
|
| BLAKE2b-256 |
329f5535f021c5128e379853d2096a90b4dd1a279134c5eeba6da0e487b65044
|
File details
Details for the file fastflight-0.3.0-py3-none-any.whl.
File metadata
- Download URL: fastflight-0.3.0-py3-none-any.whl
- Upload date:
- Size: 24.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98ccacec9ae2ba740e1af7b9d56eb6f4f1ab9e975cc8fdf2467be96926c2b1e1
|
|
| MD5 |
67ac11ad52fa86f5429317c17d78b512
|
|
| BLAKE2b-256 |
e3c4922a074fb5590a1fb2dec3649fc3812751cc4882ddfa2a826bfa271a3c7b
|