doeff-vm
The Rust virtual machine that runs doeff programs.
This README is for Python developers who use doeff and want to know what doeff-vm does. After reading it you can tell whether you need to import it directly, install it, and use its low-level program nodes.
What it does
doeff-vm is a Python extension module written in Rust (PyO3). It executes doeff programs:
- it keeps the stack of installed handlers,
- it sends each performed effect to the innermost handler that accepts it,
- it resumes the program through one-shot continuations (a continuation
kcan be resumed at most once).
The scheduler behind doeff's concurrency effects (Spawn, Gather, …) also runs on
it.
Most users never import doeff_vm directly. doeff.run(...) drives this VM, and
pip install doeff installs it for you.
How one effect is handled:
run(program)
│
▼
doeff-vm steps through the program
│ the program performs an effect
▼
innermost handler in scope ──Resume(k, value)──► the program continues with `value`
│ Pass(effect, k)
▼
next handler outward … ──(no handler left)──► UnhandledEffect is raised
Installation
pip install doeff # recommended: installs doeff-vm together with the Python API
pip install doeff-vm # the VM alone
Requires Python 3.11 or newer. If pip finds no prebuilt wheel for your platform, it
builds from the source distribution, which needs a Rust toolchain (cargo).
Minimal example
@do functions and handler installers build a tree of program nodes, and the VM
evaluates that tree. You can also build the tree by hand with the node classes that
doeff_vm exports:
from dataclasses import dataclass
import doeff_vm
from doeff import do, run
@dataclass(frozen=True)
class Double(doeff_vm.EffectBase):
n: int
@do
def double_handler(effect, k):
if isinstance(effect, Double):
return (yield doeff_vm.Resume(k, effect.n * 2))
yield doeff_vm.Pass(effect, k) # not ours: hand it to the next handler outward
# The tree that `@do` code and handler installers normally build for you.
program = doeff_vm.WithHandler(double_handler, doeff_vm.Perform(Double(21)))
print(run(program)) # 42
What it exports
| Name | What it is |
|---|---|
EffectBase |
Base class of every effect |
Pure, Perform, WithHandler, Apply, Expand, Call |
Program nodes: a value, performing an effect, installing a handler, calls |
Resume, Transfer, ResumeThrow, TransferThrow, Pass |
What a handler does with a continuation k: resume it, throw an exception into it, or pass the effect outward |
K |
A one-shot continuation |
Ok, Err |
Result values (for example the answer of Try) |
UnhandledEffect |
Raised when no handler in scope accepts an effect |
PyVM |
The VM object itself (PyVM().run(program)); doeff.run is the supported entry point |
Type stubs ship with the package (py.typed).
How it fits with the other doeff packages
doeff is published as five core packages. pip install doeff installs the first three; the extra
hy (pip install "doeff[hy]") adds doeff-hy and doeff-hy-pytest.
| Package | Role |
|---|---|
| doeff | The Python API: @do, handler installers, run, the doeff CLI |
| doeff-vm | This package: the Rust VM that executes programs |
| doeff-core-effects | The standard effects and their handlers (state, reader, writer, concurrency, HTTP, SQL, files, processes, …) |
| doeff-hy | Macros for writing doeff code in Hy, a Lisp that compiles to Python |
| doeff-hy-pytest | pytest plugin for tests written with doeff-hy |
Arrows point from a package to a package it depends on (the dotted one only with the extra hy):
doeff ──► doeff-vm
│
└─────► doeff-core-effects ┄┄► doeff-hy ──► doeff-hy-pytest
doeff-hy also depends on doeff and doeff-core-effects, so the five packages are released together with matching versions.
The VM core is the Rust crate
doeff-vm-core.
It is compiled into this extension and is not published separately.
Developing
Build and test from a clone of the repository:
git clone https://github.com/proboscis/doeff
cd doeff
make sync # builds the extension into the uv environment
uv run pytest packages/doeff-vm/tests
make sync rebuilds the extension whenever the Rust sources change. Do not run
maturin develop directly; the build goes through tools/doeff_cargo_backend.py.
Dispatch micro-benchmarks live in packages/doeff-vm-core/benches/ (see the
root README).
License
MIT. See LICENSE.
Metadata
Release files for doeff-vm 0.6.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 | |
|---|---|---|---|
| doeff_vm-0.6.0.tar.gz | 197.4 kB | Details |
Built distributions (wheels)
Total release size: 17.4 MB
Release files / doeff_vm-0.6.0.tar.gz
| Download URL | doeff_vm-0.6.0.tar.gz |
|---|---|
| Size | 197.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c337e7bba3ec8e7221049a22182bb50878bccc4112c11870ecfdcd8d2b2a5470
|
|
BLAKE2b-256 checksum How to use checksums |
d3d9b406ccc06caa649ff19b44f31ea6d6282759c989d0fa3558ab512bb3307a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp314-cp314t-win_amd64.whl
| Download URL | doeff_vm-0.6.0-cp314-cp314t-win_amd64.whl |
|---|---|
| Size | 594.6 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
75b0413df8ef75d927d16c9e1787834e4d27738f61efe5595596133ff5c7093c
|
|
BLAKE2b-256 checksum How to use checksums |
969ce29a4802339bb32cc2eabdba24024522c96fc2d2386538486ec41f5cd443
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | doeff_vm-0.6.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 644.8 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
70fa01a6be8adf5f3c40a88ff7a16d5b786fe02e2fb1f2b4fa6f8c69925754d0
|
|
BLAKE2b-256 checksum How to use checksums |
1e32e842241309b82c811fa5ddd394162aedcddf1ab304ac9b3d20414bbd91fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | doeff_vm-0.6.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 612.4 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
5b1ec4b940011fc6a17a07c4df052dfbc936aa4366c49b632ae998a148368ab1
|
|
BLAKE2b-256 checksum How to use checksums |
1a8277f9bf9bc3c90818ecc1176d7dc517bb93a397673aa04ba8c2b67b0c4ff3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | doeff_vm-0.6.0-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 584.1 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
cf2519e3c82ce266e9f1b98d160f724beefbe03bde2121760c9865a37586ab5b
|
|
BLAKE2b-256 checksum How to use checksums |
e28a25f4c1fa84795340fd187cf64ffd32054b5ba759aa0a25de8656b4f462a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp314-cp314t-macosx_10_12_x86_64.whl
| Download URL | doeff_vm-0.6.0-cp314-cp314t-macosx_10_12_x86_64.whl |
|---|---|
| Size | 625.4 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
f3fbaf1b1442ea6b5ff3156e8e9aaee8e00f7ddb3cd3685c9947ff9e8864df6f
|
|
BLAKE2b-256 checksum How to use checksums |
6f4eb92c1900e4b212021d90b124d35a826b75e64ad402d93d65aff6b9f0b536
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp314-cp314-win_amd64.whl
| Download URL | doeff_vm-0.6.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 595.8 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
66fe38f4714ac7e6b717d10609222ee2c4d2ae357ffbc99fa9a27e617c4c042b
|
|
BLAKE2b-256 checksum How to use checksums |
b2dadf797dcc5a076fc9cc3abdfea082c005488468cd56356acdcac0cecce449
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | doeff_vm-0.6.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 650.3 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
accb898b153696f0c55c89640504fe3ef0cf7de11db250aa6a7d6017a33f7f61
|
|
BLAKE2b-256 checksum How to use checksums |
5b8d96b9b8ec801f7529aad71f2b5c19b81a7084243b2883f5af5ea628eefe53
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | doeff_vm-0.6.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 619.0 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
7031c46e3e9c27647ed507ea0408429def044a061a7b1c8ea0c71ce8b8905e9d
|
|
BLAKE2b-256 checksum How to use checksums |
a084cf9ceb7a3c7d052b19731956bea9597eff74c77d40389c440ceaab8fddf4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | doeff_vm-0.6.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 589.2 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
54c15a87873da2e29adcdd84c4a992877bae5da5627de90e9398bf37071ea475
|
|
BLAKE2b-256 checksum How to use checksums |
d8cb522264596615926e6e7d0a2f2851485e7e2cafa0b0b9596ed6100c9a55b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp314-cp314-macosx_10_12_x86_64.whl
| Download URL | doeff_vm-0.6.0-cp314-cp314-macosx_10_12_x86_64.whl |
|---|---|
| Size | 630.7 kB |
| Tags | CPython 3.14 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
921e30f27bbc0f16787075a1bf9002473c930d8b3d0573f8335c6296d79b1c70
|
|
BLAKE2b-256 checksum How to use checksums |
d90864fe4403e9bfe6ff69f2749bfa1ea004cb05530475245e921eb7f89f4cc2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp313-cp313t-win_amd64.whl
| Download URL | doeff_vm-0.6.0-cp313-cp313t-win_amd64.whl |
|---|---|
| Size | 594.1 kB |
| Tags | CPython 3.13 CPython 3.13 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b1453c23d9a6429425c2790e549d9c0aeb03c08779731ca519b57710f0c9b371
|
|
BLAKE2b-256 checksum How to use checksums |
92f3cd6d30c73a472e81d366088fdcdd54248b6a244ef02e126984343ac2becd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp313-cp313t-macosx_11_0_arm64.whl
| Download URL | doeff_vm-0.6.0-cp313-cp313t-macosx_11_0_arm64.whl |
|---|---|
| Size | 582.8 kB |
| Tags | CPython 3.13 CPython 3.13 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6a019abb680adf10fd366918c4e4ac3c8584092136531d3b585462b2bc5f109f
|
|
BLAKE2b-256 checksum How to use checksums |
8fa973d40509629e7be7f6579ab18b58580b2a75f913d4fb1edf5b7b49433378
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp313-cp313t-macosx_10_12_x86_64.whl
| Download URL | doeff_vm-0.6.0-cp313-cp313t-macosx_10_12_x86_64.whl |
|---|---|
| Size | 624.4 kB |
| Tags | CPython 3.13 CPython 3.13 free-threading macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
79a4662763953d8dcf97d2812b9a3c2d5b5a60c4219a5a849aff236fa14547a4
|
|
BLAKE2b-256 checksum How to use checksums |
e421a95282a9194e2e6fbfea73a6f55f20ab6898efb5fa19ab9ef7c79c05989f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp313-cp313-win_amd64.whl
| Download URL | doeff_vm-0.6.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 594.9 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
61f7cd8a251efb49f30bc3674a601ba44e6a3ed63de206fbcddd28f94db05759
|
|
BLAKE2b-256 checksum How to use checksums |
a982802bbc64d13edb53ed1ca18d2acf21a73812fa4a0da5f47c597f3c58a7a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | doeff_vm-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 650.1 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
43a75a5070429f4ab5f1356718c94a498b1ff76f720d6f8b8307f4c3e874297e
|
|
BLAKE2b-256 checksum How to use checksums |
93a69220a74d30a283dcc757f9c9192f62083ed9eac25838e7a81b44503f7bd4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | doeff_vm-0.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 618.8 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
e1dda529833d3cd31cc0d87fc6a1e0e6a91b65015a4a8c665858af356d91796b
|
|
BLAKE2b-256 checksum How to use checksums |
83e4a4b59d3547b20e91dc155db45cba9ac1df60b7a2fa379402bf6bd571dad2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | doeff_vm-0.6.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 589.2 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
558036b86d908a49e4793624eed67a72f8d01f86394a4f144f6544e6a7c4d7c8
|
|
BLAKE2b-256 checksum How to use checksums |
df073d782545d80df81b76768a930259837354850cbb53e546cd4a801410a2b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | doeff_vm-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 630.5 kB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
de337417e1abeae616ce2253e997969de62dbd34dc7157b45ae9b30fd81ee37d
|
|
BLAKE2b-256 checksum How to use checksums |
0b9a1e407be4a596f111a2ba82dfa061925193a8cc36de9792e903a7617a3071
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp312-cp312-win_amd64.whl
| Download URL | doeff_vm-0.6.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 595.6 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
02be4bffb3c15528fc6637f3ba82c27e024cd1bcb9732bf702be691593b5d1e8
|
|
BLAKE2b-256 checksum How to use checksums |
f2c9ddd2d7b705176166ccbc02c8c7258a798c7f4b60ced37a33c342bb9925de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | doeff_vm-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 651.3 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
90509892842304a3e9f33e4f9bd1d71b40c5a94e13f668645e1533bf4bb35507
|
|
BLAKE2b-256 checksum How to use checksums |
779f719e2854eee78df11aef1590d69f3260f5ffef3ba8be799e76dc62d537cf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | doeff_vm-0.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 620.3 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
ee45b994011fe0ed1b4241f196eeb933eb7dae1e6d5be9d71f0d00e2e814baa4
|
|
BLAKE2b-256 checksum How to use checksums |
24aaf0e412afe10dc588fec784750cc96c26b9a137ef3b90bc6a443579687f8a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | doeff_vm-0.6.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 590.0 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
76e4a1e90953d4d24a25bcd201244048a3cb4cc4d177fc6a3c48a4b1f6020e95
|
|
BLAKE2b-256 checksum How to use checksums |
7de0555545e25ee8c748a8fe3ce6965d229c9aa5808ef55af5694064ff9f871a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | doeff_vm-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 631.3 kB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
10e3bb19f71a7f496860b655d0a1876a0b22e42fb9ec145c2fe041ccd6a12932
|
|
BLAKE2b-256 checksum How to use checksums |
dea48e190a18309a89b5902ff64a21ede21eedebb1ebb0bcb4b65f2293dc3b12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp311-cp311-win_amd64.whl
| Download URL | doeff_vm-0.6.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 588.4 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
90953b18c24b4ec95ec41109a201d89b2f64eabfc730ef0cfc22b80083fd3434
|
|
BLAKE2b-256 checksum How to use checksums |
b13ef92e958f9b6a63a40b36f3d21170a05567ef86ada775c63e2992bd297209
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | doeff_vm-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 639.4 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
5b68d3c956323c5d1f5a3c535ea126810697e7b0d1d2e171f786e36618bb3313
|
|
BLAKE2b-256 checksum How to use checksums |
5a699b810e2f00a18deee1cf2121bf11ae5190e20cec95e33b6c1ae2fcd658a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | doeff_vm-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 612.2 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
6b7160270e9cae8aece22968d23f7f030aae51f4be1f38b24ad5c13fd2116a3e
|
|
BLAKE2b-256 checksum How to use checksums |
0bbe2844373ef6f95a1475777bec3587aae3c52376a71769654d693ced2153c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | doeff_vm-0.6.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 586.1 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
841645a2f816f1838098030bce44a4356bfe475b572185a78c91a7f05ad27c26
|
|
BLAKE2b-256 checksum How to use checksums |
c428a7d41d08c9fb0f69994e4c633dc93d5fef4bc367131730e5e474eceec91c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / doeff_vm-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | doeff_vm-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 628.1 kB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
fcaaf0c01ccd749f436a002119ff0244ee89622f1708d7488da5481d88d678c4
|
|
BLAKE2b-256 checksum How to use checksums |
6b35c015e52295e18aedf161abf0f74279a65bfa32774a919a6ecf36526e1666
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|