Skip to main content

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.

Metadata

Release files for beebium-server 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for beebium-server 0.4.1
File
beebium_server-0.4.1-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
beebium_server-0.4.1-py3-none-manylinux_2_36_x86_64.whl Python 3 none Linux glibc 2.36+ x86-64 Details
beebium_server-0.4.1-py3-none-manylinux_2_36_aarch64.whl Python 3 none Linux glibc 2.36+ ARM64 Details
beebium_server-0.4.1-py3-none-macosx_12_0_x86_64.whl Python 3 none macOS 12.0+ x86-64 Details
beebium_server-0.4.1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details

Total release size: 361.2 MB

Release files / beebium_server-0.4.1-py3-none-win_amd64.whl

Download URL beebium_server-0.4.1-py3-none-win_amd64.whl
Size 50.1 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
987828d635043a15d3ce812c8fac0b961dc2bd56fbc4d3262f2c7fc5bdb69f6f
BLAKE2b-256 checksum
How to use checksums
f336f9442bc682832fbddbc8ec264f632f8db906c3867a36ab8e898b7798634c
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.4.1-py3-none-manylinux_2_36_x86_64.whl

Download URL beebium_server-0.4.1-py3-none-manylinux_2_36_x86_64.whl
Size 86.9 MB
Tags Linux glibc 2.36+ x86-64 Python 3
SHA-256 checksum
How to use checksums
40984081acfde5a8fee3a46d0af2a829d621a17b6d2945bf3f52cc5c57893f84
BLAKE2b-256 checksum
How to use checksums
674b5e65c4cd277c4a6bdad2271ae23674f54cba3a0a106bdae2ce51ea2cbb7b
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.4.1-py3-none-manylinux_2_36_aarch64.whl

Download URL beebium_server-0.4.1-py3-none-manylinux_2_36_aarch64.whl
Size 85.7 MB
Tags Linux glibc 2.36+ ARM64 Python 3
SHA-256 checksum
How to use checksums
3a4853e493dd13aabca793a08420037211a4cd5b182dc4245d1a12c4e0499a95
BLAKE2b-256 checksum
How to use checksums
3990b8a7e59afd4525eec31d6d8ddbaf63c61c7cae8d5ff43654ac7fd7cd9942
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.4.1-py3-none-macosx_12_0_x86_64.whl

Download URL beebium_server-0.4.1-py3-none-macosx_12_0_x86_64.whl
Size 70.9 MB
Tags Python 3 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
40755e1cca174790c326c4705eaf5bdbde4f1c6433df20fa732ccb6abe620d6b
BLAKE2b-256 checksum
How to use checksums
7adf07619c5b171873e36a4e6e49e76599c31ce314678413a3f4b5ad0df2d070
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.4.1-py3-none-macosx_11_0_arm64.whl

Download URL beebium_server-0.4.1-py3-none-macosx_11_0_arm64.whl
Size 67.6 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
819a162b1da7e8d25eb899b0e8caae1642283335eb71c8ea5cb67daa2e71e37a
BLAKE2b-256 checksum
How to use checksums
d6749bf94cf6da9d5a8e46a2aec94f32fbd85a578abff901db3de0748e5197f2
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 history Release notifications | RSS feed

0.9.1

5 release files

0.8.0

5 release files

0.7.0

5 release files

0.6.1

5 release files

0.6.0

5 release files

0.5.0

5 release files

This release

0.4.1 This release

5 release files

0.4.0

5 release files

0.3.0

5 release files

0.2.0

5 release files

0.1.17

5 release files

0.1.16

5 release files

0.1.15

5 release files

0.1.14

5 release files

0.1.13

5 release files

0.1.12

5 release files

0.1.11

5 release files

0.1.10

5 release files

0.1.9

5 release files

0.1.8

5 release files

0.1.7

5 release files

0.1.6

5 release files

0.1.5

3 release files

0.1.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page