Symbian platform
Build Symbian ARMv5T and ARMv6 applications with modern C++20, CMake and Ninja on macOS or Linux. The SDK provides native libraries, Python tools, E32/SIS conversion, emulator controls and guest debugging.
Documentation · Create a project · C++ API · Original Symbian headers
What you can build
| Area | Available facilities |
|---|---|
| Toolchain | Clang/LLD ARM builds, native ELF-to-E32 conversion, frozen-ordinal import proxies, EXEs and DLLs |
| C++ runtime | libc++ containers, smart pointers, clocks, allocation and compiler-rt helpers; Abseil Status/StatusOr and maps |
| Concurrency | Futures, Tasks, channels, fibers, native timers, property watches and event/worker executors following A11 |
| Device APIs | Counters, power/display snapshots, streaming files and directories, camera discovery and native TCP |
| HTTP | Streaming HTTP/1.1 and HTTP/2 clients and servers with bounded buffers and absolute deadlines |
| WebSockets | RFC 8441 WebSockets using shared HTTP/2 and stream primitives |
| TLS | Application-linked Mbed TLS 3.4.1, TLS 1.2/1.3 streams, explicit CA roots and certificate/hostname verification |
| Packaging | SIS creation, registration, translated menu captions, SVG icons and RSA/X.509 signatures |
| Host tools | Python CLI, desktop console, USB inspection, package staging and disposable emulator sessions |
| EKA1 | Separate ARMv5T legacy process profile with selected original GNU2 EUSER imports |
The modern runtime, GUI and networking APIs require EKA2. EKA1 does not yet provide those libraries or legacy SIS packaging. TLS requires a secure entropy source for the actual target; the supplied emulator adapter is specific to its patched firmware profile. Camera capture, modern sensor/media APIs, general C++ TLS and thrown C++ exceptions are unsupported. See the capability guide for component requirements.
Firmware and original OS DLL implementations are supplied separately and are not redistributed. An import library describes a system DLL's exports; it does not replace that DLL. Test your application's services and installation policy on its target device before deployment.
Install the host tools
Use Python 3.11–3.14 on macOS 15+ or Linux with glibc 2.28+, on x86_64 or arm64:
python3 -m venv ~/.venvs/symbian
source ~/.venvs/symbian/bin/activate
pip install symbian-platform
symbian doctor
For application builds, also select a native target SDK. The Getting started guide covers that step and keeps a separate path for working from a source checkout.
Work from a source checkout
Use the macOS/Linux prerequisites and host build guide to prepare dependencies. From the checkout:
uv sync
uv run symbian doctor
uv run symbian toolchain probe
uv run symbian sdk install ~/dev/symbian-sdk --workspace "$PWD"
uv run symbian init ~/dev/hello_time --name hello_time --non-interactive
uv run symbian app build --project ~/dev/hello_time
SDK export needs the prepared platform and runtime sources described in the
source walkthrough. Once the tools are installed
in your environment, invoke symbian directly. To run an application, first
import local firmware, then use
symbian app run --project ~/dev/hello_time.
The project version comes from VERSION. Release packaging is being prepared for macOS/Linux on x86_64 and arm64, Python 3.11–3.14 wheels, a Python sdist, a source archive and standalone SDK distributions. Full EKA1 library coverage and complete native distribution packaging are still in progress; they are not implied by the current host wheel build.
Examples and guides
| Task | Guide |
|---|---|
| Create an IDE-ready application | Standalone projects |
| Build, inspect and package an application | Building, packaging |
| Fetch a web page, set a header or serve a response | Native HTTP client and server |
| Open a WebSocket connection | Native WebSockets |
| Load CA roots and use TLS 1.2/1.3 | TLS client/server examples |
| Use native TCP | Connectivity API |
| Understand the guest runtime and threading | Runtime, concurrency |
| Build a Window Server GUI and debug the guest | Build a real GUI app, CLion |
| Build a legacy EKA1 executable | EKA1 process profile |
| Prepare a Linux development machine | Linux host guide |
| Inspect USB or stage a package on a phone | Device guide |
| Run the authenticated read-only development agent | Agent guide |
Application examples live in examples/; focused ABI, runtime and network diagnostics live in probes/. The probes are runnable examples for checking specific platform contracts, rather than user-oriented apps. The native reference covers SDK symbols and eleven original Symbian headers; symbol descriptions are being expanded with links to hosted platform documentation. New generated descriptions use attribution markers in the reference. Local builds, firmware, private device data, external source checkouts and emulator state stay outside version control.
Community foundations and licensing
This project builds on EKA2L1, SymbianSource, SymbianRevive, A11, LLVM, Abseil and mbedtls-symbian. See community credits for their contributions.
For separately supplied ROMs and firmware, see EKA2L1's Important Links and Delight, the community firmware project. Symbian World collects applications and resources; NNProject develops mobile applications and utilities; the Symbian World Telegram community hosts discussion and support. The curated hstsethi and gauravssnl Awesome Symbian lists link to software, tools and development resources.
Project code is licensed under Apache 2.0. Third-party sources and adaptations retain their original licenses and notices, including the separate GPL-licensed emulator integration and EPL-licensed platform material.
Metadata
Release files for symbian-platform 0.1.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 | |
|---|---|---|---|
| symbian_platform-0.1.0.tar.gz | 8.7 MB | Details |
Built distributions (wheels)
Total release size: 70.9 MB
Release files / symbian_platform-0.1.0.tar.gz
| Download URL | symbian_platform-0.1.0.tar.gz |
|---|---|
| Size | 8.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8360ab2332ff5787748cff330b5ec24796cb660f8b76e145f4eca373375dd157
|
|
BLAKE2b-256 checksum How to use checksums |
b8e216526c08ef7cd269f44d1926ea3fd3bdd97bb3abcdff7fbb65e93cd31e0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | symbian_platform-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.2 MB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
9a320b8195c1114b03c37c4a79853887acabc87b7c1bad0b8eb41a51f89c5609
|
|
BLAKE2b-256 checksum How to use checksums |
3f3f4dd9cc6b0a7d98e4632869af5561e3a11c0cc1a39ce8b3baa57bdfbfac01
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | symbian_platform-0.1.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.4 MB |
| Tags | CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
f619aaf17aef784edd19c659fdbc39a69c3b7f6047a867525a0df876807d0922
|
|
BLAKE2b-256 checksum How to use checksums |
de280f6719abf80d5854aeb422774f1c51300c13066e7e95b136d6b7c25736bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp314-cp314-macosx_15_0_x86_64.whl
| Download URL | symbian_platform-0.1.0-cp314-cp314-macosx_15_0_x86_64.whl |
|---|---|
| Size | 3.4 MB |
| Tags | CPython 3.14 macOS 15.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
a232b01a71c09a422d773c029f8e27cc33a12e574eea0c745ea370554c42e1d3
|
|
BLAKE2b-256 checksum How to use checksums |
1bfcb710ac4a4301b52fb3f1c6275c65925ab4d1f1c92f800c3166c89945798a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp314-cp314-macosx_15_0_arm64.whl
| Download URL | symbian_platform-0.1.0-cp314-cp314-macosx_15_0_arm64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.14 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1219e54e637d141022b68eded8e2c3c508b1176471b2b67645627259e6dd87c3
|
|
BLAKE2b-256 checksum How to use checksums |
7f0096fc7d4bd246fa7299474b55f167996bb1e43f7f569766ea97f5479fdca3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | symbian_platform-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.2 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
14691147494128efd6f556961b1c51de8db8d32152564e18b70a697bcdaa0b7b
|
|
BLAKE2b-256 checksum How to use checksums |
aad4d88941aaddb37b449fcc8332d0164b66cd5be830099b9feac388c7eb6f16
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | symbian_platform-0.1.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.4 MB |
| Tags | CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
32b481f7668f54c00f1cac5ef9ce5380d690f76674e0c62f9cd1dee94a57bf63
|
|
BLAKE2b-256 checksum How to use checksums |
347ac0c4eaf82049f1554ba252d5f08c5c3a8b0722ca1d93ff1c4d016723ae95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp313-cp313-macosx_15_0_x86_64.whl
| Download URL | symbian_platform-0.1.0-cp313-cp313-macosx_15_0_x86_64.whl |
|---|---|
| Size | 3.4 MB |
| Tags | CPython 3.13 macOS 15.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
c812c038d9c3145259e231751f7c2ba9d53ef127601fbe356e44b07faca3ccd5
|
|
BLAKE2b-256 checksum How to use checksums |
83dc030119c7a2b25d915621c5d2197d8e16eb9a7593157aa4366c9a0e2757e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp313-cp313-macosx_15_0_arm64.whl
| Download URL | symbian_platform-0.1.0-cp313-cp313-macosx_15_0_arm64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.13 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b8b88b2cc66b5a54d1e6b8a8afbd5a7a66274d0e156e8cc828bac50879994bfa
|
|
BLAKE2b-256 checksum How to use checksums |
d71c346f48fb218d479fbdffe5f2de9afd0b3907f3ed18ddafb4bb1fdf129709
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | symbian_platform-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.2 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
8b17b31e97d871a8a18fdd8d26ad39432abc2d74fe6f9e760d25e69d8af8a7ad
|
|
BLAKE2b-256 checksum How to use checksums |
7204ea9cba63551e11eb05a54f9c660e4d4a0784d082796a48e5e6bcb8450429
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | symbian_platform-0.1.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.4 MB |
| Tags | CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
7109b5a78bb4b9d2163e1a092f54e58687e60795c382d58fa9b9b9973fc89766
|
|
BLAKE2b-256 checksum How to use checksums |
758f1fb46329fd7d5f7804a61d000159a70c3c98726a2938a6696a1639fc1d23
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp312-cp312-macosx_15_0_x86_64.whl
| Download URL | symbian_platform-0.1.0-cp312-cp312-macosx_15_0_x86_64.whl |
|---|---|
| Size | 3.4 MB |
| Tags | CPython 3.12 macOS 15.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
39217824ba04fd61a3550769568b54295383fd91ad35756797053edadcaa89ce
|
|
BLAKE2b-256 checksum How to use checksums |
c9b5856553b4d0f5796ef9fd0e38ad37b85c81bb2bf1ed14f4d4aaccb769d703
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp312-cp312-macosx_15_0_arm64.whl
| Download URL | symbian_platform-0.1.0-cp312-cp312-macosx_15_0_arm64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.12 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e2f857c7ad6497f540a912177399aaa11b350a8bfea11a1848cc07d8ba4aaf6d
|
|
BLAKE2b-256 checksum How to use checksums |
d46c49be30ec3391d85523bf232ecd49d1316a910964131cdf8612169af1510f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | symbian_platform-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.2 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
86bcfdd8d9e78fcc4c4311d0255af8084c7c93d755358b55d5c6ffc9da468588
|
|
BLAKE2b-256 checksum How to use checksums |
021e508f451dce45f47d2feaae793da7a087aac8010a2a21f43f4af02b5e9f53
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | symbian_platform-0.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.4 MB |
| Tags | CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
76905abd98f097bfb5bc8d21d8487d63703b4ecc942d2a972762fe166075838d
|
|
BLAKE2b-256 checksum How to use checksums |
9cbe38e326bfda3c9de68d8039e770792e93e4936dc164396c0503a3abb220d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp311-cp311-macosx_15_0_x86_64.whl
| Download URL | symbian_platform-0.1.0-cp311-cp311-macosx_15_0_x86_64.whl |
|---|---|
| Size | 3.4 MB |
| Tags | CPython 3.11 macOS 15.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
68b72cb49eb463a5f567c9e8b5731b36a15cc8a5a2ac02de5b6622b1149dcb7e
|
|
BLAKE2b-256 checksum How to use checksums |
e225b8270d8c8eb21282c66a483b5ed6d434588befc70c79a8951d647b072147
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / symbian_platform-0.1.0-cp311-cp311-macosx_15_0_arm64.whl
| Download URL | symbian_platform-0.1.0-cp311-cp311-macosx_15_0_arm64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.11 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
8ebb35048302d75f2c3edd4ca24f8d25398924a7c87ecce714a9fff08eb591da
|
|
BLAKE2b-256 checksum How to use checksums |
91547c1e846e8a6df2bd22607f50afa853a4ffbca010bbfc09e521d6c43f2c73
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|