An open API service indexing awesome lists of open source software.

https://github.com/ponylang/ponyc

Pony is an open-source, actor-model, capabilities-secure, high performance programming language
https://github.com/ponylang/ponyc

actor-model pony-language pony-source ponyc ponylang programming-language

Last synced: 22 days ago
JSON representation

Pony is an open-source, actor-model, capabilities-secure, high performance programming language

Awesome Lists containing this project

README

          

# Pony

Pony is an open-source, object-oriented, actor-model, capabilities-secure, high-performance programming language.

## Status

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.

## Supported platforms

| 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.

## Build prerequisites

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](BUILD.md) for per-distribution package names.

## More Information

* [Installation](INSTALL.md)
* [Building from source](BUILD.md)
* [Docker images](INSTALL_DOCKER.md)
* [Editor support](EDITORS.md)

## Resources

* [Learn more about Pony](https://www.ponylang.io/discover/)
* [Start learning Pony](https://www.ponylang.io/learn/)
* [Getting help](https://www.ponylang.io/learn/#getting-help)
* [Try Pony online](https://playground.ponylang.io)
* [Frequently Asked Questions](https://www.ponylang.io/faq/)
* [Community](https://www.ponylang.io/community/)

## Contributing

We welcome contributions to Pony. Please read through [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to get started.

## License

Pony is distributed under the terms of the [2-Clause BSD License](https://opensource.org/licenses/BSD-2-Clause). See [LICENSE](LICENSE) for details.