Skip to main content

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


🛠 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastflight-0.3.0.tar.gz (89.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastflight-0.3.0-py3-none-any.whl (24.2 kB view details)

Uploaded Python 3

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

Hashes for fastflight-0.3.0.tar.gz
Algorithm Hash digest
SHA256 9492d9ac52becd8611cdbec30a257c4bd029c50bfe3eb2875234c357508fa456
MD5 da6b07742d45e257a19fb0e96d6c0df3
BLAKE2b-256 329f5535f021c5128e379853d2096a90b4dd1a279134c5eeba6da0e487b65044

See more details on using hashes here.

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

Hashes for fastflight-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 98ccacec9ae2ba740e1af7b9d56eb6f4f1ab9e975cc8fdf2467be96926c2b1e1
MD5 67ac11ad52fa86f5429317c17d78b512
BLAKE2b-256 e3c4922a074fb5590a1fb2dec3649fc3812751cc4882ddfa2a826bfa271a3c7b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page