Metadata-Version: 2.1
Name: oapython
Version: 0.7.2
Summary: OA — Vulkan GPU compute & ML foundation library (SUPER EXPERIMENTAL Python bindings)
Author: Lukasz Biernat
License: BUSL-1.1
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: C++
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Operating System :: POSIX :: Linux
Project-URL: Homepage, https://github.com/realminc/oa
Project-URL: Source, https://github.com/realminc/oa
Requires-Python: >=3.9
Requires-Dist: numpy
Description-Content-Type: text/markdown

# oapython — OA Python bindings (super experimental)

`oapython` exposes **[OA](https://github.com/realminc/oa)**, a Vulkan 1.4 GPU compute &
ML engine, to Python via [nanobind](https://github.com/wjakob/nanobind). You install
`oapython`; you import it as `oa`.

> ⚠️ **Super-experimental tech preview.** The API, kernels, and formats change without
> notice. This is not a stable or supported API — expect breakage. The C++ library is
> the primary surface; these bindings are an early look.

## Install

```bash
pip install oapython        # then: import oa
```

**Requirements:** Linux x86-64, CPython 3.12, glibc ≥ 2.39, and a Vulkan 1.1+ driver on
the machine. The wheel loads Vulkan dynamically at runtime — no loader is bundled, so the
target needs a working Vulkan ICD (NVIDIA, AMD/RADV, or Intel/ANV).

## What you get

The bindings call the **same compute kernels** as the native engine, so the Python API
adds no measurable overhead (nanobind is ~100 ns/call — negligible against GPU-op
latency). On identical byte-level NLP models, the Python training loop runs at C++
throughput.

End-to-end examples (MNIST classifier, byte-level RNN/GRU/Transformer/Mamba training)
live under [`Tutorial/Py/`](https://github.com/realminc/oa/tree/main/Tutorial/Py) in the
repository.

## Links

- **Source & docs:** https://github.com/realminc/oa
- **Guides:** https://dev.realm.software

## License

[Business Source License 1.1](https://github.com/realminc/oa/blob/main/LICENSE) —
source-available; each version converts to Apache-2.0 four years after release.
© 2025–2026 Lukasz Biernat (trading as Realm).
