Skip to content

Firebird Embedded for Python

Firebird Embedded, packaged for Python applications.

firebird-embedded provides ready-to-use Firebird Embedded database engine binaries distributed as platform-specific Python wheels. It makes Firebird Embedded available through standard Python package management, simplifying installation, dependency management, and deployment of Python applications that use Firebird.

The package is free and open source, developed and maintained by IBPhoenix, and available from the Python Package Index (PyPI).

Why Firebird Embedded for Python?

Firebird Embedded allows applications to use the full Firebird relational database engine without running a separate database server. It is particularly useful for desktop applications, standalone tools, automated testing, and other environments where a self-contained database solution is desirable.

Traditionally, deploying Firebird Embedded with a Python application requires obtaining the correct native libraries, arranging the runtime files, and configuring the application to locate them.

firebird-embedded simplifies this process by providing prepared Firebird runtime binaries as installable Python packages, with direct integration support in the official Firebird Python driver.

Key benefits

  • Simple installation — Install Firebird Embedded using standard Python packaging tools such as pip or uv.
  • Direct driver integration — The official firebird-driver supports the package's runtime provider interface, allowing applications to use the installed engine without manually configuring client library paths.
  • Platform-specific packages — The appropriate native Firebird binaries are delivered in wheels for supported operating systems and architectures.
  • Reproducible environments — Manage and pin the embedded engine version as a regular Python dependency.
  • Simplified application deployment — Include the Firebird runtime in Python application environments without maintaining a separate download and installation process.
  • Runtime discovery — A provider interface allows Python libraries and applications to discover the installed runtime, including its location, client library, version, and capabilities.
  • Native Firebird engine — Uses prebuilt Firebird binaries, not a Python reimplementation or a modified database engine.

Installation

Install the package directly from PyPI:

pip install firebird-embedded

Or using uv:

uv pip install firebird-embedded

Python's package installer selects the appropriate wheel for the current platform, provided that a compatible distribution is available.

The package can also be included in your project's dependency declarations and managed alongside other Python dependencies.

Supported Versions and Platforms

The project provides packaging infrastructure for Firebird 3, 4, and 5, with platform support depending on the Firebird version.

The Firebird 5 distribution supports:

  • Windows: 32-bit and 64-bit x86
  • Linux: 32-bit and 64-bit x86
  • Linux: ARMv7 and ARM64

Python 3.11 or newer is required. Some native runtime dependencies must be supplied by the operating system, particularly on Linux.

For current releases, platform availability, and detailed runtime requirements, consult the package information on PyPI and the project repository.

Integration with the Official Python Driver

Starting with version 2.1.0, the official firebird-driver provides direct support for runtime providers, including the one supplied by firebird-embedded.

This allows Python applications to use the packaged Firebird engine without manually locating native libraries or configuring the Firebird runtime directory.

Install both packages:

pip install firebird-driver firebird-embedded

Then select the embedded runtime provider before establishing a database connection:

from importlib.metadata import entry_points
from firebird.driver import load_api, connect

provider_entry = next(
    ep for ep in entry_points(group="firebird.runtime.providers")
    if ep.name == "firebird"
)
load_api(provider_entry.load()())

# Connect to a local database using Firebird Embedded
con = connect("/path/to/database.fdb",
              user="SYSDBA", password="masterkey")

Once the provider is selected, firebird-driver loads the appropriate Firebird client library and configures its runtime environment. Applications can then use the driver's normal API for database connections and operations.

The provider must be selected before the driver loads its client API. Selection is explicit; installing firebird-embedded does not automatically change existing driver configurations.

For further details, see the Runtime Providers documentation.

Integration with Other Python Applications

The package exposes its runtime provider through the standard Python entry-point mechanism, using the firebird.runtime.providers group.

This allows other Python libraries and applications to discover the installed Firebird runtime and obtain information about its location, client library, version, and capabilities.

The provider interface is independent of firebird-driver, making the package suitable for applications and tools that need direct access to Firebird runtime components.

Availability and Licensing

Free and open source.

firebird-embedded is available on PyPI under the MIT license. Source code, packaging tools, and development information are available in the public GitHub repository.

The bundled Firebird engine binaries remain subject to their respective Firebird licensing terms.