The Firebird Butler is a separate division under Firebird Project. The purpose of this division is to develop and provide solutions to various Firebird-related challenges faced by Firebird administrators and application developers, that are not (for practical reasons) addressed by the core Firebird distribution.

Firebird Butler is an extensive division with number of parts and projects divided into several layers and pillars.

The layers are:

  1. Specifications and other documents

    This is the shared foundation of the Butler projects. This document collection (in which this text is included) contains a description of the division its parts and how they fit in with each other, the specification of the developer platform, the used communication protocols, and the recommended practices for their implementation and use. It also includes the specification of selected services implemented within Butler's projects, and other related documentation.

    All these documents (provided under CC-BY-SA-4.0 license) reside in the Butler repository on GitHub. They are also accessible in HTML and other formats at readthedocs.

    The main communication channel for discussion of specifications, implementation strategies, and other issues related to the whole project or its basics is the firebird-butler forum on googlegroups.


    There is also a low-traffic, read-only annoucement list for delivery of information about new releases and other important events related to the project.

  2. Implementations of the Butler platform / SDK

    Different implementations of the development platform represent the individual pillars of the division These pillars are typically formed around a particular programming language or development environment. Currently, due to limited resources, there division has only three pillars:

    1. saturnin : a reference implementation in Python
    2. ButlerJavaSDK : implementation in Java
    3. Butler SDK for Free Pascal : implementation in Free Pascal

    We hope the Butler’s potential will attract other developers to help us deliver implementations also for Delphi, C# and other environments.

    Each SDK is a sub-project with its own repositories, communication channels, developers and documentation.

  3. Implementations of Butler Services

    Implementation of Butler services is structured into stand-alone sub-projects because it is typically defined by the SDK used and the specific focus. Any such project can define its own standards and specifications beyond the basic specifications for Butler Services. The basic specifications then provide the necessary minimum level of interoperability between Services implemented by different sub-projects.

    Within the Firebird Butler division, only one sub-project of this type is currently being developed - a Firebird Butler implementation in Python called Saturnin. Its aim is to provide a standard solution for management of Firebird deployments of any size, structure and complexity with an emphasis on large corporate installations.

    However, other such projects with different focus and features can be developed both within and outside the Firebird Butler project.

  4. Distribution packages

    Distribution bundles are the final product designed for common users. Like Linux distributions, they can include and combine various results from different Butler implementation projects to achieve different goals.

    Since the Firebird Butler projects are only in its beginnings, no distributions are yet available.