Brewtils
Brewtils is the Python library for interfacing with Beergarden systems. If you are planning on writing beer-garden plugins, this is the correct library for you. In addition to writing plugins, it provides simple ways to query the API and is officially supported by the beer-garden team.
Features
Brewtils helps you interact with beer-garden.
- Easy way to create beer-garden plugins
- Full support of the entire Beer-Garden API
- Officially supported by the beer-garden team
Installation
To install brewtils, run this command in your terminal:
$ pip install brewtils
Or add it to your requirements.txt
$ cat brewtils >> requirements.txt
$ pip install -r requirements.txt
Quick Start
You can create your own beer-garden plugins without much problem at all. To start, we'll create the obligatory hello-world plugin. Creating a plugin is as simple as:
from brewtils.decorators import system, parameter, command
from brewtils.plugin import RemotePlugin
@system
class HelloWorld(object):
@parameter(key="message", description="The message to echo", type="String")
def say_hello(self, message="World!"):
print("Hello, %s!" % message)
return "Hello, %s!" % message
if __name__ == "__main__":
client = HelloWorld()
plugin = RemotePlugin(client,
name="hello",
version="0.0.1",
bg_host='127.0.0.1',
bg_port=2337)
plugin.run()
Assuming you have a Beer Garden running on port 2337 on localhost, running this will register and
start your plugin! You now have your first plugin running in beer-garden. Let's use another part
of the brewtils library to exercise your plugin from python.
The SystemClient is designed to help you interact with registered Systems as if they were native
Python objects.
from brewtils.rest.system_client import SystemClient
hello_client = SystemClient('localhost', 2337, 'hello')
request = hello_client.say_hello(message="from system client")
print(request.status) # 'SUCCESS'
print(request.output) # Hello, from system client!
In the background, the SystemClient has executed an HTTP POST with the payload required to get
beer-garden to execute your command. The SystemClient is how most people interact with
beer-garden when they are in the context of python and want to be making requests.
Of course, the rest of the API is accessible through the brewtils package. The EasyClient
provides simple convenient methods to call the API and auto-serialize the responses. Suppose you
want to get a list of all the commands on all systems:
from brewtils.rest.easy_client import EasyClient
client = EasyClient('localhost', 2337)
systems = client.find_systems()
for system in systems:
for command in system.commands:
print(command.name)
This is just a small taste of what is possible with the EasyClient. Feel free to explore all the
methods that are exposed.
For more detailed information and better walkthroughs, checkout the full documentation!
Documentation
- Full Beer Garden documentation is available at https://beer-garden.io
Release files for brewtils 3.35.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| brewtils-3.35.0.tar.gz | 108.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| brewtils-3.35.0-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 228.0 kB
Release files / brewtils-3.35.0.tar.gz
| Download URL | brewtils-3.35.0.tar.gz |
|---|---|
| Size | 108.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5a3978393f58a9219b44a485f97072a0d6a06c767d060fae2bb8a46731fddac1
|
|
BLAKE2b-256 checksum How to use checksums |
40c5d020ed94dbaac9df2b368e0514852393db91db0578648f75640bc5962357
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.
Transparency logRelease files / brewtils-3.35.0-py2.py3-none-any.whl
| Download URL | brewtils-3.35.0-py2.py3-none-any.whl |
|---|---|
| Size | 119.1 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
c7b2434f3bb3d8e0e0a1e90919163c50255aadc86a8e8cd97bf783e84dbd5e92
|
|
BLAKE2b-256 checksum How to use checksums |
ed52d73bc97b3b85c9cdf122c5e0befe9d6b753666e9ffe6473901d09a067a13
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.
Transparency log