query-farm-flight-server


Namequery-farm-flight-server JSON
Version 0.1.4 PyPI version JSON
download
home_pageNone
SummaryA framework for building Arrow Flight servers for the DuckDB Airport extension with robust authentication, schema management, and data handling capabilities.
upload_time2025-07-13 14:52:23
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseNone
keywords airport arrow arrow flight duckdb duckdb airport flight predicate pushdown predicates sql sql parsing
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # `query-farm-flight-server`

A robust Python framework for building [Apache Arrow Flight](https://arrow.apache.org/blog/2020/05/06/introducing-arrow-flight/) servers that integrate seamlessly with the [Airport extension](https://airport.query.farm) for [DuckDB](https://duckdb.org/).

This framework enables secure, efficient, and scalable server implementations with features such as authentication, schema management, and predicate pushdown for data queries.

---

## 🚀 Key Features

* ✅ **Authentication & Authorization**: Pluggable backends for secure access control
* 📚 **Schema & Table Management**: Full support for schema evolution and DDL operations
* 📈 **Rate Limiting & Usage Tracking**: Monitor and control client usage
* 🧩 **Extensible & Type-Safe**: Built for safe and scalable extension
* ☁️ **AWS Integration**: Support for S3 storage and DynamoDB-based authentication

---

## 🛰 Arrow Flight Server Support

Designed to simplify the development of Arrow Flight servers:

* Generic, reusable base classes for implementing Arrow Flight endpoints
* Standardized handlers for all major data operations
* Supports both streaming and batch workflows
* Typed parameter parsing and serialization for safer code

---

## 🔐 Authentication System

Unified interface for multiple authentication backends:

* In-memory backend for local development and tests
* DynamoDB backend for scalable, persistent auth
* Naive implementation for prototyping
* Token-based auth with built-in rate limiting

---

## 🔄 Data Serialization

Efficient and type-safe serialization for Airport-compatible servers:

* Parameter serialization using [MessagePack](https://msgpack.org/)
* Record batch transfer using Arrow IPC
* Support for DuckDB expression (de)serialization
* Optimized binary payloads for Arrow Flight actions

---

## 🛠 Admin CLI

Built-in command-line tool for managing and monitoring your server:

* Create and manage user accounts and tokens
* Monitor usage and generate reports
* Manage configuration settings

---

## 🧩 Designed for Extension

Whether you're integrating new storage backends, customizing authentication, or implementing complex business logic, `query-farm-flight-server` is built to scale with your needs while keeping your codebase clean and type-safe.


# Getting Started

Installation

```python
pip install query-farm-flight-server
```

# Development

This python module is designed to be extended for specific database backends. Implement the abstract methods in `BasicFlightServer` to create a custom server for your specific data source.

The project maintains strict type safety through Python's typing system and Pydantic models, ensuring robust API contracts.

## Author

This Python module was created by [Query.Farm](https://query.farm).

# License

MIT Licensed.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "query-farm-flight-server",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "airport, arrow, arrow flight, duckdb, duckdb airport, flight, predicate pushdown, predicates, sql, sql parsing",
    "author": null,
    "author_email": "Rusty Conover <hello@query.farm>",
    "download_url": "https://files.pythonhosted.org/packages/24/5a/3900de42968c3d444b2393949a0447e9fa826845ec05214d10818e652c38/query_farm_flight_server-0.1.4.tar.gz",
    "platform": null,
    "description": "# `query-farm-flight-server`\n\nA robust Python framework for building [Apache Arrow Flight](https://arrow.apache.org/blog/2020/05/06/introducing-arrow-flight/) servers that integrate seamlessly with the [Airport extension](https://airport.query.farm) for [DuckDB](https://duckdb.org/).\n\nThis framework enables secure, efficient, and scalable server implementations with features such as authentication, schema management, and predicate pushdown for data queries.\n\n---\n\n## \ud83d\ude80 Key Features\n\n* \u2705 **Authentication & Authorization**: Pluggable backends for secure access control\n* \ud83d\udcda **Schema & Table Management**: Full support for schema evolution and DDL operations\n* \ud83d\udcc8 **Rate Limiting & Usage Tracking**: Monitor and control client usage\n* \ud83e\udde9 **Extensible & Type-Safe**: Built for safe and scalable extension\n* \u2601\ufe0f **AWS Integration**: Support for S3 storage and DynamoDB-based authentication\n\n---\n\n## \ud83d\udef0 Arrow Flight Server Support\n\nDesigned to simplify the development of Arrow Flight servers:\n\n* Generic, reusable base classes for implementing Arrow Flight endpoints\n* Standardized handlers for all major data operations\n* Supports both streaming and batch workflows\n* Typed parameter parsing and serialization for safer code\n\n---\n\n## \ud83d\udd10 Authentication System\n\nUnified interface for multiple authentication backends:\n\n* In-memory backend for local development and tests\n* DynamoDB backend for scalable, persistent auth\n* Naive implementation for prototyping\n* Token-based auth with built-in rate limiting\n\n---\n\n## \ud83d\udd04 Data Serialization\n\nEfficient and type-safe serialization for Airport-compatible servers:\n\n* Parameter serialization using [MessagePack](https://msgpack.org/)\n* Record batch transfer using Arrow IPC\n* Support for DuckDB expression (de)serialization\n* Optimized binary payloads for Arrow Flight actions\n\n---\n\n## \ud83d\udee0 Admin CLI\n\nBuilt-in command-line tool for managing and monitoring your server:\n\n* Create and manage user accounts and tokens\n* Monitor usage and generate reports\n* Manage configuration settings\n\n---\n\n## \ud83e\udde9 Designed for Extension\n\nWhether you're integrating new storage backends, customizing authentication, or implementing complex business logic, `query-farm-flight-server` is built to scale with your needs while keeping your codebase clean and type-safe.\n\n\n# Getting Started\n\nInstallation\n\n```python\npip install query-farm-flight-server\n```\n\n# Development\n\nThis python module is designed to be extended for specific database backends. Implement the abstract methods in `BasicFlightServer` to create a custom server for your specific data source.\n\nThe project maintains strict type safety through Python's typing system and Pydantic models, ensuring robust API contracts.\n\n## Author\n\nThis Python module was created by [Query.Farm](https://query.farm).\n\n# License\n\nMIT Licensed.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A framework for building Arrow Flight servers for the DuckDB Airport extension with robust authentication, schema management, and data handling capabilities.",
    "version": "0.1.4",
    "project_urls": {
        "Issues": "https://github.com/query-farm/python-flight-server/issues",
        "Repository": "https://github.com/query-farm/python-flight-server.git"
    },
    "split_keywords": [
        "airport",
        " arrow",
        " arrow flight",
        " duckdb",
        " duckdb airport",
        " flight",
        " predicate pushdown",
        " predicates",
        " sql",
        " sql parsing"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f03ecb568dd45fd16c4dc3821abb065f216476606e81e3dbeffd2b2906484886",
                "md5": "8ee0122d7cbb412460072b90297f86fa",
                "sha256": "caf6fef5670e69fc2030fb6363597f32f3062978d2c16c8364952b647d7e971d"
            },
            "downloads": -1,
            "filename": "query_farm_flight_server-0.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8ee0122d7cbb412460072b90297f86fa",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 30558,
            "upload_time": "2025-07-13T14:52:21",
            "upload_time_iso_8601": "2025-07-13T14:52:21.699936Z",
            "url": "https://files.pythonhosted.org/packages/f0/3e/cb568dd45fd16c4dc3821abb065f216476606e81e3dbeffd2b2906484886/query_farm_flight_server-0.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "245a3900de42968c3d444b2393949a0447e9fa826845ec05214d10818e652c38",
                "md5": "09a34b45c4871af5cefe2e7d93250b9e",
                "sha256": "d8ba28818b106faacb23e05597c9fe4f3320d04b8a9fbc99c1850a70b8116fe4"
            },
            "downloads": -1,
            "filename": "query_farm_flight_server-0.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "09a34b45c4871af5cefe2e7d93250b9e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 22981,
            "upload_time": "2025-07-13T14:52:23",
            "upload_time_iso_8601": "2025-07-13T14:52:23.702460Z",
            "url": "https://files.pythonhosted.org/packages/24/5a/3900de42968c3d444b2393949a0447e9fa826845ec05214d10818e652c38/query_farm_flight_server-0.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-13 14:52:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "query-farm",
    "github_project": "python-flight-server",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "query-farm-flight-server"
}
        
Elapsed time: 0.55518s