New releases: firebird-base, firebird-driver, firebird-lib and firebird-embedded

New versions of three Firebird Python packages were released today:

  • firebird-base 2.0.4
  • firebird-driver 2.1.0
  • firebird-lib 2.1.0

The main changes are summarized below.

firebird-base 2.0.4

  • Extended the hook system to support callbacks registered with ANY as the source.
  • Added a coding-agent skill for working with firebird-base.
  • Migrated documentation to Markdown/Zensical, with expanded guides and API documentation.

firebird-driver 2.1.0

  • Introduced a runtime provider interface for selecting client library implementations through load_api(). This enables integration with alternative providers, including custom embedded Firebird distributions.
  • Added support for Firebird 6 trace session plugins.
  • Added configurable timeouts for server service output queries, allowing applications to distinguish a timeout from the end of output.
  • Added a coding-agent skill for working with firebird-driver.
  • Reorganized and migrated documentation to Markdown/Zensical.
  • Compatibility change: Corrected the keyhoder keyword to keyholder in backup and restore methods. The old spelling is no longer accepted.

firebird-lib 2.1.0

  • Extended schema metadata support for Firebird 4+ with role system privileges and SQL SECURITY settings, including their representation in generated DDL.
  • Extended gstat parsing with encrypted generator page statistics and big record page counts.
  • Updated the schema and monitor modules to materialize BLOB values retrieved by internal cursors.
  • Added a coding-agent skill for working with firebird-lib.
  • Migrated documentation to Markdown/Zensical.
  • Now requires firebird-driver 2.1.x.

All three packages now advertise Python 3.14 and 3.15 support.

The new coding-agent skills are distributed with the project repositories and can be used with compatible AI coding assistants.

Downloads and full changelogs:

All three packages are also available from PyPI.

In addition to these releases, IBPhoenix has published a new package, firebird-embedded (https://github.com/IBPhoenix/python3-embedded), which implements the FirebirdProvider protocol introduced in firebird-driver 2.1.0.

The project maintains three separate branches for building binary wheel distributions of Firebird 3, 4, and 5. Prebuilt packages are available for Firebird 3.0.14, 4.0.7, and 5.0.4 on Windows and Linux, covering both 32-bit and 64-bit platforms, including ARM support for Firebird 5.

The packages are available on PyPI (https://pypi.org/project/firebird-embedded/).

(No Ratings Yet)

Jaybird 6.0.7 released

We are happy to announce the release of Jaybird 6.0.7, providing bug fixes. Jaybird is the Firebird JDBC driver.

Changes

The following was fixed or changed in Jaybird 6.0.7:

  • Fixed: Statement close with a pending async fetch results in a broken connection (#961)
  • Dependency update: updated org.bouncycastle:bcprov-jdk18on from 1.85.2 to 1.86 (used by chacha64-plugin) (#962)

Bug reports about undocumented changes in behavior are appreciated. Feedback can be sent to Firebird-java or reported on the issue tracker https://github.com/FirebirdSQL/jaybird/issues.

Jaybird 6 supports Firebird 3.0, Firebird 4.0, and Firebird 5.0, on Java 17, Java 21, Java 25, and Java 27.

See also:

(1 votes, average: 5.00 out of 5)

RDB Expert 2026.09 Release

The focus is on a large‑scale update to the ER diagram editor, as well as targeted improvements to the interface, profiler, and overall stability.

New features in the ER diagram editor:

🔴 Support for views, global temporary, and system tables

🔴 Convenient filtering, diagram synchronization with the database, and new options for automatic placement

🔴 Full support for dark theme, scaling, moving, and copying fragments

🔴 Export to PNG, JPG, SVG, Mermaid, draw.io and JSON, as well as import of Mermaid and IBExpert (.grc) files

🔴 Advanced print settings

What’s new

🔴The ability to rename editor tabs has been added

🔴The profiler now includes digit separators for query execution time, which makes analysis more visual

Fixes

🔴Freezing when viewing large profiling logs has been resolved

🔴The parsing of trace logs has been adjusted for new versions of Red Database / Firebird.

🔴The application launch on Linux with glibc versions below 2.34 has been fixed.


For the full list of changes and technical details, see the changelog on the website.

You can join to the Telegram chat for discussion.

(No Ratings Yet)

EmberWings 2026/3 Is Now Available

We’re pleased to announce that the September 2026 issue of EmberWings (2026/3) is now available.

This issue considers a familiar professional hazard: a system, concept, or answer can look known just enough to discourage another question. That is often where the interesting work begins. When technologies, workloads, and habits meet in a new context, surface similarity can conceal consequences that appear only under pressure.

The September edition follows that thread through the engine and the wider Firebird ecosystem. It brings together technical perspective, experience from inside the project, practical observations, and the questions that keep turning up when familiar assumptions meet real systems.

As always, EmberWings is presented in a clean, print-friendly format designed for comfortable reading, whether you prefer reading on screen or on paper.

The latest issue is available only to all Firebird Associates and Firebird Partners. It will be available to the general public in December 2026. And as always, the June issue is now available to everyone.

(1 votes, average: 5.00 out of 5)

Introducing PhoenixVault

IBPhoenix is pleased to announce the release of PhoenixVault — the secure, embedded database engine powered by Firebird.

PhoenixVault combines Firebird 5 Embedded with built-in database encryption, licensing and streamlined deployment. The complete embedded engine, client library, encryption and international support are integrated into a single library, making secure local database deployment considerably simpler than with a standard Firebird Embedded installation.

PhoenixVault is designed as a drop-in replacement for both Firebird Embedded and the Firebird client library. Existing Firebird applications can use the standard Firebird API without special encryption support in the application, while all databases created by the embedded engine are automatically encrypted.

A flexible license-based key management scheme lets software vendors control how encryption is bound to their products, customers or individual installations, without requiring an external key management infrastructure. PhoenixVault can also protect essential Firebird configuration files against inspection or tampering.

For full details, including supported platforms, pricing and available maintenance options, see the PhoenixVault product page.

(1 votes, average: 5.00 out of 5)

Release RDB Expert 2026.08

This update makes working with databases more comfortable and stable. We have improved system integration and fixed visual issues that interfered with work. Note that the key used to apply autocompletion has changed from Enter to Tab, but you can revert it in the settings.

Added:

🟥 System-wide application installation support on Linux.

🟥 Windows UAC dialog requesting administrator rights to update the application.

🟥 Shortcuts configuration for some commands.

Fixed:

🟥 Automatically display autocomplete tooltips in the Query Editor.

🟥 Generating a DDL for table when exporting data to a SQL script.

🟥 “Result Set Limit Reached” dialog appears multiple times.

For a detailed breakdown of all technical modifications, please visit the full changelog on our website and join the chat.


(No Ratings Yet)

Performance Comparer for Firebird (FBPC) version 1.1

FBPC Performance Comparer for Firebird 1.1 is here with major improvements throughout the comparison workflow. The tool imports SQL commands recorded by the Firebird Trace API and runs them against two different environments, making it easier to evaluate server versions, configuration changes, and infrastructure.

This release focuses on safer testing, more trustworthy results, and much clearer problem diagnosis.]

The 8 main highlights

1. More reliable trace import

Trace files are now read correctly as UTF-8, reducing corrupted characters and improving the detection of commands, plans, and parameters. Generated trace.conf files now also include the exclusion filter correctly, using either current syntax or the legacy Firebird 2.5 syntax.

Read more
(1 votes, average: 5.00 out of 5)

Jaybird 6.0.6 and Jaybird 5.0.13 released

We are happy to announce the release of Jaybird 6.0.6 and Jaybird 5.0.13, providing bug fixes. Jaybird is the Firebird JDBC driver.

Changes

The following was fixed or changed in Jaybird 6.0.6:

  • Two system properties were added to disable forced close of a connection after fatal errors (#893)
  • Fixed: Legacy authentication fails with non-ASCII characters in password (#858)
  • Fixed: Off-by-one error in default value for maxInlineBlobSize (#937)
  • Fixed: NullPointerException on authentication failure with non-existent user and single plugin in AuthServer (#940)
  • Improvement: Support customization of service requests in service managers (#946)
  • Dependency update: updated net.java.dev.jna:jna-jpms from 5.18.1 to 5.19.1 (used by jaybird-native) (#951)
  • Added TransactionState.ABORTED_UNKNOWN (#955)
  • Dependency update: updated org.bouncycastle:bcprov-jdk18on from 1.83 to 1.85.2 (used by chacha64-plugin) (#957)
  • The GPG key used to sign releases on Maven Central and GitHub was changed to key-id 373F 65A9 F373 1D5C (fingerprint 8372 B5DA 39C9 2FE1 DB4B BB62 373F 65A9 F373 1D5C). This is a 4096-bit key, where the previous one was 2048 bit.

The following was fixed or changed in Jaybird 5.0.13:

  • Fixed: Legacy authentication fails with non-ASCII characters in password (#931)
  • Two system properties were added to disable forced close of a connection after fatal errors (#934)
  • Fixed: Off-by-one error in default value for maxInlineBlobSize (#939)
  • Improvement: Support customization of service requests in service managers (#947)
  • Dependency update: updated net.java.dev.jna:jna from 5.18.1 to 5.19.1 (used by native and embedded) (#952)
  • Made changes to address various potentially confusing warnings and errors logged during finalization (#953)
  • The GPG key used to sign releases on Maven Central and GitHub was changed to key-id 373F 65A9 F373 1D5C (fingerprint 8372 B5DA 39C9 2FE1 DB4B BB62 373F 65A9 F373 1D5C). This is a 4096-bit key, where the previous one was 2048 bit.

Bug reports about undocumented changes in behavior are appreciated. Feedback can be sent to Firebird-java or reported on the issue tracker https://github.com/FirebirdSQL/jaybird/issues.

Jaybird 6.0.6

Jaybird 6 supports Firebird 3.0, Firebird 4.0, and Firebird 5.0, on Java 17, Java 21, Java 25, and Java 26.

See also:

Jaybird 5.0.13

Jaybird 5 supports Firebird 2.5, Firebird 3.0, Firebird 4.0, and Firebird 5.0, on Java 8, Java 11, Java 17, Java 21, Java 25, and Java 26 (support for Java 11 and higher using the Java 11 version of the driver). 

See also:

(1 votes, average: 5.00 out of 5)

Electric Firebird — Firebird Engine Compiled to WebAssembly, With a Live Browser Demo

Electric Firebird (mariuz/electric-firebird on GitHub) compiles the Firebird database engine to WebAssembly, following the same approach PGlite took for PostgreSQL. The goal is to let Firebird run both server-side (Node.js) and fully client-side in the browser, with no server round-trip required for queries.

Highlights:

Two backends: a native Node.js implementation (via the Firebird Embedded Server) and a WASM build for browsers

Browser version persists data to IndexedDB, surviving page reloads

Parameterized queries, transactions, typed values, and cross-tab safety are supported

Apache-2.0 license

Requires Node.js 20+ and a Firebird client library to build; WASM compilation uses an Emscripten SDK

Live in-browser demo (SQL runs entirely client-side, nothing is uploaded): https://mariuz.github.io/electric-firebird/

Still under active development — DDL/DML execution and transactions are confirmed working in both Node and Chromium — but feedback, testing, and contributions are very welcome.

(3 votes, average: 5.00 out of 5)

Firebird Adds Optional Static fbclient Libraries, Including Symbol-Collision Prevention

Firebird’s client library, libfbclient / fbclient.dll, has always been distributed exclusively as a shared library. PR #9104 by Adriano dos Santos Fernandes, merged into the Firebird source tree on July 24, 2026, changes that: it introduces an optional, non-default static archive (libfbclient.a on POSIX, fbclient_static.lib on Windows) for applications that need to link the client library statically instead of loading it as a shared object/DLL.

Why static linking wasn’t offered before

The blocker wasn’t packaging — it was memory management. Firebird overrides the global C++ operators operator new, operator new[], operator delete, and operator delete[] (in src/common/classes/alloc.cpp) so that any bare, non-pool allocation inside Firebird is routed through its own internal memory pool.

In the shared library, this is harmless: a POSIX version script (and a Windows .def file) keeps those overridden symbols hidden, so an application linking against libfbclient.so or fbclient.dll keeps its own global allocator untouched.

A static archive has no such boundary. Its object files get merged directly into the host application at link time, so the linker would silently resolve the host’s own bare new/delete calls to Firebird’s internal definitions — hijacking the host application’s memory allocation without any warning. That’s a nasty, hard-to-diagnose class of bug, and it’s exactly why a static build was never shipped.

The fix: rename every internal symbol at the archive level

Rather than hand-maintain a list of symbols to hide, the PR takes a systematic approach: every internal global symbol not part of Firebird’s public API gets renamed with a __fbclient_ prefix as a post-processing step on the compiled archive. This covers the global operators, decNumber symbols, C++ mangled names, vtables, typeinfo, guard variables — everything — generated automatically from the existing export list rather than curated by hand.

On POSIX (Linux and macOS), this happens in two steps:

  1. Archive slimming — ld -r with -u flags seeded from every symbol in builds/posix/firebird.vers pulls in only the archive members actually reachable from the public API, using cross-reference output (--cref on ELF, -map on Darwin) to identify and repack just those members.
  2. Symbol renaming — objcopy --redefine-syms (GNU objcopy on Linux, llvm-objcopy on macOS) renames every non-API global symbol to a __fbclient_-prefixed name, using a rename map generated automatically via nm --defined-only -g.

On Windows, a new fix_fbclient_static.bat parses builds/win32/defs/firebird.def for the public API, runs llvm-nm on every object file to collect defined symbols, and applies the same kind of rename map with llvm-objcopy --redefine-syms.

Regular pool-based allocation via FB_NEW / FB_NEW_POOL — the pattern used throughout the Firebird codebase — was never affected by any of this, since it never touched the global operators in the first place.

A side effect: no DllMain on Windows

A statically linked fbclient has no separate DLL module, so DllMain never runs for it. The one real functional gap this closes is per-thread cleanup, previously tied to DllMain‘s DLL_THREAD_DETACH notification. The PR adds a new ThreadCleanup class using Fiber-Local Storage (FlsAlloc/FlsSetValue/FlsFree) on Windows, mirroring what pthread_key_create‘s destructor already gives the POSIX build for free.

Building it

POSIX:

make -C temp/debug TARGET=Debug client_static

produces <firebird>/lib/libfbclient.a. Most third-party dependencies (tommath, tomcrypt) still need to be linked separately; decNumber/libdecFloat is merged directly into the archive.

Windows:

builds\win32\make_all.bat CLIENT_ONLY=STATIC

builds yvalve as fbclient_static.lib under new DebugStatic/ReleaseStatic configurations, then runs the symbol-fixup script automatically.

What’s in the diff

25 files changed, +2168/-268 lines, across three commits, including new CI workflows (.github/workflows/static-build.yml) to build and validate the static client on Linux, macOS, and Windows, and a new, thorough doc/README.StaticClient.md covering the rationale, build steps, and verification commands for both platforms.

For any project embedding Firebird’s client library directly into a host binary, this closes a real gap — and it does it without punting the symbol-collision risk onto the integrator.

Source: FirebirdSQL/firebird PR #9104. Also posted on Mariuz’s Blog.

(1 votes, average: 5.00 out of 5)

1 2 3 … 495