beebium-server
What is Beebium?
Beebium is a headless, cycle-accurate BBC Micro emulator with a client-server architecture. The emulator runs as a server process -- one per machine variant (Model B, B+, B+ 128K, B with ROM/RAM board) -- and is driven over gRPC, so front-ends and automation talk to it across a well-defined protocol rather than being wired into the emulation core.
What is this package?
beebium-server is that emulator, shipped as platform wheels. Each wheel
carries the built server binaries, the ROMs, the presets and the bundled
extensions, so a complete, working BBC Micro emulator installs straight from
PyPI -- no system package manager, no compiler, no ROM files to locate by hand:
pip install beebium-server
Installing it also puts the four server binaries on PATH
(beebium-model-b and its variants), so the package is useful on its own.
Relationship to beebium
beebium is the Python client that drives
a server over gRPC. The two are independent packages -- neither depends on the
other -- but they complement each other: with both installed, the client finds
this wheel automatically and Beebium.launch() needs no arguments.
pip install beebium beebium-server
Supported platforms
A wheel is published for each of these; pip selects the one matching your
machine.
| Platform | Wheel tag |
|---|---|
| Linux x86-64 (glibc 2.36+) | manylinux_2_36_x86_64 |
| Linux ARM64 / aarch64 (glibc 2.36+) | manylinux_2_36_aarch64 |
| macOS Apple Silicon (arm64, macOS 11+) | macosx_11_0_arm64 |
| macOS Intel (x86-64, macOS 12+) | macosx_12_0_x86_64 |
| Windows x64 | win_amd64 |
Installation
With uv:
uv add beebium-server # add to your project
# or, into a plain virtualenv:
uv pip install beebium-server
With pip:
pip install beebium-server
Usually you install it alongside the client, pip install beebium beebium-server.
Usage
Run a server from the command line
Installing the wheel puts one console script per machine variant on PATH.
Each starts a headless server that listens for gRPC clients:
# Run a BBC Model B server. Variants: beebium-model-b, beebium-model-b-plus,
# beebium-model-b-plus-128k, beebium-model-b-romram.
beebium-model-b --port 48875
# Initializing BBC Model B...
# Listening on port 48875
# BBC Model B ready. Press Ctrl+C to stop.
With no --port the server picks its default port. Run beebium-model-b --help
for the other subcommands (listing extensions, describing presets, capturing a
screenshot, and more).
Locate the binaries and data from Python
A tiny, dependency-free API reports where the bundled binaries and data live -- useful for launching a server yourself or pointing other tooling at the ROMs:
import beebium.server
# Where the bundled server binary lives (ensured executable), and its kin.
executable = beebium.server.executable_filepath() # the model-b binary
print(executable)
print(beebium.server.variants()) # the four variants
print(beebium.server.rom_dirpath()) # the bundled ROMs
print(beebium.server.preset_dirpath()) # the bundled presets
print(beebium.server.__version__)
Drive a server from Python
To control a server programmatically -- type at the keyboard, read the screen,
inspect memory, drive the debugger -- install the
beebium client and see its documentation.
With both packages installed, Beebium.launch() starts one of these servers
with no arguments.
Contributing
Development happens in the
Beebium repository. This wheel is
not built from source here: build_wheel.py repackages a release bundle that
the monorepo already builds and validates, so the server binaries are
byte-identical to those on the GitHub Release.
This README is generated -- do not edit README.md directly. See
CONTRIBUTING.md.
License
GPL-3.0-or-later. See COPYING.txt.
Release files for beebium-server 0.1.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| beebium_server-0.1.11-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| beebium_server-0.1.11-py3-none-manylinux_2_36_x86_64.whl | Python 3 | none | Linux glibc 2.36+ x86-64 | Details |
| beebium_server-0.1.11-py3-none-manylinux_2_36_aarch64.whl | Python 3 | none | Linux glibc 2.36+ ARM64 | Details |
| beebium_server-0.1.11-py3-none-macosx_12_0_x86_64.whl | Python 3 | none | macOS 12.0+ x86-64 | Details |
| beebium_server-0.1.11-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
Total release size: 216.8 MB
Release files / beebium_server-0.1.11-py3-none-win_amd64.whl
| Download URL | beebium_server-0.1.11-py3-none-win_amd64.whl |
|---|---|
| Size | 30.0 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
064c65c612cfa6f7b05be323bfb2b5908f51cab8d9ff0f14c2b48fbe879f2b56
|
|
BLAKE2b-256 checksum How to use checksums |
025088fcc7268a30e88861895b7e135cc7ecdf5b070d460f0bae82b16439c830
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / beebium_server-0.1.11-py3-none-manylinux_2_36_x86_64.whl
| Download URL | beebium_server-0.1.11-py3-none-manylinux_2_36_x86_64.whl |
|---|---|
| Size | 52.5 MB |
| Tags | Linux glibc 2.36+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
4d52896023620d2984cfe64a7f41be25636163b7502cf4c1ca2ff7d3cf3c1a5f
|
|
BLAKE2b-256 checksum How to use checksums |
ada5d611e5962c32268da33267ed62d4501f4e2582b40355e0eb4588f4292fdf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / beebium_server-0.1.11-py3-none-manylinux_2_36_aarch64.whl
| Download URL | beebium_server-0.1.11-py3-none-manylinux_2_36_aarch64.whl |
|---|---|
| Size | 51.7 MB |
| Tags | Linux glibc 2.36+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
6acc19b436ec4333331e550be4ecf09cd28d424bf12d829a304a2700272e08d4
|
|
BLAKE2b-256 checksum How to use checksums |
445f852339250c6dc95834e17a09c47007c6c7ee3205e6ff5a9b1138e7a79d0e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / beebium_server-0.1.11-py3-none-macosx_12_0_x86_64.whl
| Download URL | beebium_server-0.1.11-py3-none-macosx_12_0_x86_64.whl |
|---|---|
| Size | 42.3 MB |
| Tags | Python 3 macOS 12.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
062d8755dad17f011cc43650dccc29512b020101d424b2b2dc9720eec2913c5f
|
|
BLAKE2b-256 checksum How to use checksums |
1d2823545dc8287d786c87a4e234126c31157231aeec6f19c230d4752bff2af7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / beebium_server-0.1.11-py3-none-macosx_11_0_arm64.whl
| Download URL | beebium_server-0.1.11-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 40.3 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5c810f80036ac85b636e1aec26c356c8bbce71824e6f1f572bca18440b4fae94
|
|
BLAKE2b-256 checksum How to use checksums |
0f115ee0b167a811e2d9b43bfd2744b3c09bed634784c120d82534fa212cdc7c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|