rpi-display-core
rpi-display-core is a Python display framework for Raspberry Pi projects.
Today it supports SSD1306 and SH1106 OLED displays through dedicated backends under rpi_display.displays, while keeping the shared drawing and widget framework generic.
Install
From the repository
git clone https://github.com/andremmfaria/rpi-display-core.git
cd rpi-display-core
uv sync
From PyPI
uv add rpi-display-core
Import it as:
from rpi_display import Runner, canvas
from rpi_display.displays.ssd1306 import SSD1306Display
What it provides
rpi_display.displays.ssd1306.SSD1306Display— SSD1306 display wrapper for Raspberry Pirpi_display.displays.sh1106.SH1106Display— SH1106 display wrapper for Raspberry Picanvas(display)— context manager that creates a fresh PIL image and flushes it on exitRunner— simple fixed-FPS render loopMockDisplay— hardware-free test helper- Built-in widgets for text, progress bars, clocks, network info, system stats, and spinners
Quick example
from rpi_display import Runner
from rpi_display.displays.ssd1306 import SSD1306Display
from rpi_display.widgets.clock import ClockWidget
Runner(SSD1306Display(), ClockWidget(), fps=1).run()
Display integrations
from rpi_display.displays.ssd1306 import SSD1306Display
from rpi_display.displays.sh1106 import SH1106Display
Other display chips can follow the same pattern under rpi_display.displays.
Widget modules
from rpi_display.widgets.text import Text, MultiLineText, ScrollingText
from rpi_display.widgets.shapes import ProgressBar
from rpi_display.widgets.clock import ClockWidget
from rpi_display.widgets.system import SystemStatsWidget
from rpi_display.widgets.network import NetworkWidget
from rpi_display.widgets.spinner import Spinner
Examples
The repository includes ready-to-run examples in examples/:
01_hello_world.py02_system_stats.py05_animation.py07_clock.py09_systemd_service.py10_sh1106_system_stats.py
Raspberry Pi setup
For wiring, I2C enablement, uv-based setup, and systemd instructions, see SETUP.md.
Development workflow
uv sync
uv run pytest
uv run ruff check .
uv run black --check .
uv run isort --check-only .
uv run mypy
Build and validate for PyPI
uv build
uvx twine check dist/*
Publish
uv publish
Current scope
- Raspberry Pi focused
- SSD1306 and SH1106 support implemented today
- Architecture intended to grow to more display types later
Metadata
Release files for rpi-display-core 1.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| rpi_display_core-1.1.2.tar.gz | 10.4 kB | With provenance | Details for rpi_display_core-1.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| rpi_display_core-1.1.2-py3-none-any.whl | Python 3 | none | any | Details for rpi_display_core-1.1.2-py3-none-any.whl |
Total release size: 20.2 kB
Release files / rpi_display_core-1.1.2.tar.gz
| Download URL | rpi_display_core-1.1.2.tar.gz |
|---|---|
| Size | 10.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
76bfa68dc8d38be2720594ede3c6bb10ce34e37986b68ec5b99942e9fc3911b8
|
|
BLAKE2b-256 checksum How to use checksums |
caa244c7eae26ac0ca671ef5dc9068d721f2e2b90ac143b4b32797996a75eedf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Apr 12, 2026.
Transparency logRelease files / rpi_display_core-1.1.2-py3-none-any.whl
| Download URL | rpi_display_core-1.1.2-py3-none-any.whl |
|---|---|
| Size | 9.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b9de476338e1b0d646c9901803faebda40e608af787a142d829352e578e2922a
|
|
BLAKE2b-256 checksum How to use checksums |
45e18ab3db063144d84775f21611ffa13af43f97c709ab780c8b1031b481abe2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Apr 12, 2026.
Transparency logSecurity for rpi-display-core 1.1.2
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for rpi_display_core-1.1.2.tar.gz
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 Apr 12, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.