Firebird Butler is an extensive division with number of parts and projects divided into several layers and pillars.
The layers are:
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 the 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 division 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.
Implementations of the Butler platform
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, the division has only three pillars:
- Saturnin : a reference implementation in Python
- ButlerJavaSDK : implementation in Java
- :ref:`Butler SDK for Free Pascal <butler-fpc-sdk>` : 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.
Implementations of Butler Services
Implementation of :doc:`Butler services </rfc/3/FBSD>` 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 :doc:`specifications for Butler Services <specifications>`. 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 Core. 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.
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.
The purpose of the Saturnin is to provide Firebird Butler platform anf reference implementation of :doc:`Firebird Butler specifications <specifications>` in Python, while Saturnin SDK sub-project provides set of development tools to create :doc:`Firebird Butler services </rfc/3/FBSD>` while providing .
Lead developer | Pavel Císař |
GitHub home repository | FirebirdSQL / saturnin |
Documentation and other information sources | Saturnin Documentation |
Main communication channel | saturnin forum at googlegroups |
Lead developer | Pavel Císař |
GitHub home repository | FirebirdSQL / saturnin-sdk |
Documentation and other information sources | Saturnin SDK Documentation |
Main communication channel | saturnin-sdk forum at googlegroups |
The purpose of the ButlerJava SDK sub-project is to provide basic tools for Java to create :doc:`Firebird Butler services </rfc/3/FBSD>` in accordance to :doc:`Firebird Butler specifications <specifications>`.
Lead developer | Sergey Nikitin |
GitHub home repository | FirebirdSQL / ButlerJavaSDK |
Documentation and other information sources | readthedocs |
Main communication channel | butlerj-sdk forum at googlegroups |
The purpose of the Butler SDK for Free Pascal sub-project is to provide basic tools for Free Pascal and Lazarus to create :doc:`Firebird Butler services </rfc/3/FBSD>` in accordance to :doc:`Firebird Butler specifications <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 |
The purpose of the Saturnin Core sub-project is to provide core set of Butler services for Saturnin platform, that could be used for management of Firebird deployments of any size, structure and complexity with an emphasis on large corporate installations.
Lead developer | Pavel Císař |
GitHub home repository | FirebirdSQL / saturnin-core |
Documentation and other information sources | Saturnin-Core Documentation |
Main communication channel | firebird-saturnin forum at googlegroups |