Pony is an open-source, object-oriented, actor-model, capabilities-secure, high-performance programming language.
Pony is still pre-1.0 and as such, semi-regularly introduces breaking changes. These changes are usually fairly easy to adapt to. Applications written in Pony are currently used in production environments.
| OS \ CPU | amd64 |
arm64 |
arm32 |
riscv64 |
|---|---|---|---|---|
| Linux | ✅ Released | ✅ Released | 🔧 Best-effort | 🧪 Tested |
| macOS | ✅ Released | ✅ Released | — | — |
| Windows | ✅ Released | ✅ Released | — | — |
| FreeBSD | 🧪 Tested | ✗ Unsupported | — | — |
| OpenBSD | 🧪 Tested | ✗ Unsupported | — | — |
| DragonFly BSD | 🧪 Tested | — | — | — |
- ✅ Released — official prebuilt binaries; also tested in CI
- 🧪 Tested — tested in CI; build from source (no prebuilt binary)
- 🔧 Best-effort — not in CI; built from source and tested periodically on real hardware
- ✗ Unsupported — no support
- — Not applicable — combination doesn't exist
On Windows, the minimum supported version is Windows 11 / Windows Server 2022 (build 20348). Pony's networking uses an OS readiness API introduced in that build; earlier versions, including Windows 10, are unsupported and a Pony binary will not run on them.
On Linux, the minimum supported version is kernel 5.3. Pony's process
support detects a child's exit with pidfd_open, a system call added in that
release; on an older kernel, starting a process returns an error. Earlier
kernels are unsupported.
The standard library's net package requires an SSL/TLS development library at build time — OpenSSL (1.1.x, 3.0.x, or 4.0.x) or LibreSSL. CMake auto-detects the installed version and passes the right flag to ponyc; the build fails at configure time if no supported SSL library is found. See BUILD.md for per-distribution package names.
We welcome contributions to Pony. Please read through CONTRIBUTING.md for details on how to get started.
Pony is distributed under the terms of the 2-Clause BSD License. See LICENSE for details.