Project organization

Basic project structure

Firebird Butler is an extensive project, divided into several layers and pillars.

The layers are:

  1. Specifications and other documents

    This is the shared foundation of the Butler project. This document collection (in which this text is included) contains a description of the project, 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 the project, 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.

    Tip

    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 SDK

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

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

    We hope the project’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 project, 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 project is only in its beginnings, no distributions are yet available.

Saturnin SDK

The purpose of the Saturnin SDK sub-project is to provide basic tools for Python to create Firebird Butler services while providing a reference implementation of Firebird Butler specifications.

Lead developer Pavel Císař
GitHub home repository FirebirdSQL / saturnin-sdk
Documentation and other information sources readthedocs
Main communication channel saturnin-sdk forum at googlegroups

ButlerJavaSDK

The purpose of the ButlerJava SDK sub-project is to provide basic tools for Java to create Firebird Butler services in accordance to Firebird Butler specifications.

Lead developer Sergey Nikitin
GitHub home repository FirebirdSQL / ButlerJavaSDK
Documentation and other information sources readthedocs
Main communication channel butlerj-sdk forum at googlegroups

Butler SDK for Free Pascal

The purpose of the Butler SDK for Free Pascal sub-project is to provide basic tools for Free Pascal and Lazarus to create Firebird Butler services in accordance to Firebird Butler specifications.

Lead developer Paul Reeves
GitHub home repository FirebirdSQL / butler-fpc-sdk
Documentation and other information sources readthedocs
Main communication channel butler-fpc-sdk forum at googlegroups

Saturnin

The purpose of the Saturnin sub-project is to provide Python-based standard solution, using the Saturnin SDK, for management of Firebird deployments of any size, structure and complexity with an emphasis on large corporate installations. The main focus of the project is the creation of services and a platform for their deployment within an integrated solution.

Lead developer Pavel Císař
GitHub home repository FirebirdSQL / saturnin
Documentation and other information sources readthedocs
Main communication channel firebird-saturnin forum at googlegroups