Frequently Asked Questions

Architecture and Design

1. Could Airport be implemented without Arrow Flight?

Yes, but using REST would restrict features that rely on bi-directional streaming. Airport uses gRPC, which currently limits compatibility with WebAssembly and browser-based environments.

2. Why is msgpack used instead of JSON?

msgpack supports efficient binary serialization, including raw binary data, while JSON is limited to UTF-8 encoded text and does not support arbitrary binary content.

3. Why does the extension take a long time to build?

The build process is lengthy due to the size and complexity of the extension’s dependencies, particularly arrow, curl, and msgpack.

Compatibility and Platform Support

4. Does the Airport extension work with WebAssembly/WASM?

No. Airport depends on gRPC and Protocol Buffers, which are not currently supported in standard WASM environments.

If the support for gRPC in WebAssembly changes, this status could change.

5. What version of DuckDB is supported?

Airport targets DuckDB version 1.3.0, available on the main branch of the extension repository.

6. Is Airport compatible with Windows, macOS, and Linux?

Yes. Airport builds and runs on all platforms supported by DuckDB, including Windows, macOS, and Linux. Most development is tested on macOS.

Installation and Dependencies

7. How do I install the Airport extension in DuckDB?

You can install the extension using the DuckDB CLI:

INSTALL airport FROM community;
LOAD airport;

See the installation instructions for more details.

8. What dependencies does the Airport extension have?

Airport depends on the following vcpkg packages:

The specific versions are determined by the commit of vcpkg used in the DuckDB extension build process, as specified in the extension-ci-tools repository.


Licensing

9. What is the software license for the Airport extension?

The Airport extension is licensed under the MIT license, the same as DuckDB.

Arrow Flight servers used with Airport may use different software licenses independently.


Security

10. Does Airport support authentication or TLS?

Authentication and TLS are currently handled by the Arrow Flight server configuration.


Usage and Features

11. What can I do with Airport?

Airport enables DuckDB to query remote Arrow Flight servers as if they were local SQL tables. This supports external data access, streaming integration, and federated queries.

12. Can I use Airport with custom Arrow Flight servers?

Yes. Airport can connect to any Arrow Flight server that implements the standard protocol and provides schemas compatible with DuckDB.

13. What is the difference between Airport and MotherDuck?

The Airport Extension and MotherDuck both enhance DuckDB’s capabilities by enabling remote access to data and computation, but they differ significantly in architecture, ownership, and flexibility.

Feature Airport Extension MotherDuck
Type Open-source DuckDB extension Hosted DuckDB service
Ownership Community-driven (MIT licensed) Commercial product by MotherDuck
Installation Install via INSTALL airport from community and use locally Requires signup and a managed backend
Data Location Query data from any Arrow Flight server Queries run against data stored in the MotherDuck cloud
Execution Model DuckDB is the engine, Airport proxies remote access via Arrow Flight. All data processing still occurrs in DuckDB DuckDB queries are pushed to the cloud and executed there
Extensibility Easily implement your own Flight servers and functions Closed-source backend, not user-extensible
Security Security is the responsibility of Arrow Flight servers Cloud security managed by MotherDuck
Use Cases Access arbitrary, dynamic, and private sources from SQL Collaborate on cloud-native DuckDB databases
Data Federation Yes — Airport can federate over REST APIs, files, databases Limited to what MotherDuck integrates natively
License MIT (open source) Commercial (proprietary backend)

Troubleshooting and Support

14. What should I do if the extension fails to build or load?

Ensure you are using a supported DuckDB version (1.3.0 or greater). If building from source, verify that all vcpkg dependencies are correctly resolved.

For further help, open an issue on the GitHub repository.

15. How can I debug connectivity or performance issues?

Enable verbose logging in DuckDB, and inspect any error messages during extension loading or queries. You may also use gRPC tracing tools or network diagnostics to analyze connectivity with Arrow Flight servers.