Skip to main content

Optional PyO3 native fast path for gemstone-py.

Project description

gemstone-py-native

Optional PyO3 extension for gemstone-py.

The extension exports gemstone_py_native._gci, which matches the Python gemstone_py._gci shim surface. The reusable GCI loader and raw ABI calls live in ../crates/gemstone-gci; this package is the thin PyO3 wrapper around that shared Rust core. It exposes a NativeGciLibrary object with Rust-backed GCI methods, releases the GIL around blocking GCI calls, and replaces hot OOP tag helpers with native implementations. Wheels are built with the Python 3.11 stable ABI.

The same extension also exposes the first additive gemstone-rs shared-core surface through RustCoreSession and rust_core_*_json() helpers. That path is backed by gemstone_rs::py_native and is intentionally separate from the existing _gci compatibility API, so existing gemstone-py backend selection keeps working while the Rust-core migration is proven in tests.

Direct Rust applications should use the separate gemstone-rs workspace. When checked out beside gemstone-py, it lives at ../../gemstone-rs from this directory. It provides the safe Rust Config and Session API over the same low-level GCI layer. Rust code imports it as gemstone_rs.

Build locally:

python -m pip install maturin
cd gemstone-py-native
maturin develop

Check the Rust-core handoff surface:

python - <<'PY'
from gemstone_py_native import _gci

print(_gci.rust_core_implementation())
print(_gci.rust_core_capabilities_json())
print(hasattr(_gci, "RustCoreSession"))
PY

Run the native Rust-core smoke:

python scripts/run_native_rust_core_live_smoke.py --dry-run
GS_RUN_LIVE=1 python scripts/run_native_rust_core_live_smoke.py --require-live

The dry run verifies the installed extension exposes RustCoreSession and the rust_core_*_json() reports. The live run logs in through gemstone_rs::py_native, checks 3 + 4 == 7, performs printString, resolves Object, round-trips a string, writes and aborts a temporary global, and logs out.

Package wheels:

cd gemstone-py-native
maturin build --release

Run the direct Rust example:

cd ../../gemstone-rs
cargo run -p gemstone-rs --example eval

The repository workflow Native Wheels builds platform wheels for Linux x86_64, Linux aarch64, Linux ARMv7, macOS x86_64, macOS aarch64, Windows x86_64, and Windows ARM64. Manual workflow runs can publish the merged wheel set to TestPyPI or PyPI using trusted publishing. The workflow also builds the generated native sdist back into a wheel before uploading it, so missing source files fail before publish.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gemstone_py_native-0.1.3.tar.gz (92.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

gemstone_py_native-0.1.3-cp311-abi3-win_arm64.whl (231.2 kB view details)

Uploaded CPython 3.11+Windows ARM64

gemstone_py_native-0.1.3-cp311-abi3-win_amd64.whl (240.8 kB view details)

Uploaded CPython 3.11+Windows x86-64

gemstone_py_native-0.1.3-cp311-abi3-manylinux_2_34_armv7l.whl (312.6 kB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ ARMv7l

gemstone_py_native-0.1.3-cp311-abi3-manylinux_2_31_x86_64.whl (349.6 kB view details)

Uploaded CPython 3.11+manylinux: glibc 2.31+ x86-64

gemstone_py_native-0.1.3-cp311-abi3-manylinux_2_31_aarch64.whl (337.4 kB view details)

Uploaded CPython 3.11+manylinux: glibc 2.31+ ARM64

gemstone_py_native-0.1.3-cp311-abi3-macosx_11_0_arm64.whl (294.3 kB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

gemstone_py_native-0.1.3-cp311-abi3-macosx_10_12_x86_64.whl (299.8 kB view details)

Uploaded CPython 3.11+macOS 10.12+ x86-64

File details

Details for the file gemstone_py_native-0.1.3.tar.gz.

File metadata

  • Download URL: gemstone_py_native-0.1.3.tar.gz
  • Upload date:
  • Size: 92.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for gemstone_py_native-0.1.3.tar.gz
Algorithm Hash digest
SHA256 20a0e3e58193a32a5b10ed1478a770948bcd5f7ff31061712b44c6066033d5c0
MD5 b23b67b7a00732659ef328551d11e8f1
BLAKE2b-256 64858a14ccb0dfd93663dea394f4da9c8dad4bf3331b064cf84eb855970e9d70

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemstone_py_native-0.1.3.tar.gz:

Publisher: native-wheels.yml on unicompute/gemstone-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemstone_py_native-0.1.3-cp311-abi3-win_arm64.whl.

File metadata

File hashes

Hashes for gemstone_py_native-0.1.3-cp311-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 dff313497cb49c2ab33a893f015f82a51e3d2f8d7d1a4013b039aff72eceeecd
MD5 ee4abb26f561ac60e51058debd967d7e
BLAKE2b-256 4a73b49fa02d0d94482f4907b6b0c5095170d2756d230d1853ee8245fbd933f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemstone_py_native-0.1.3-cp311-abi3-win_arm64.whl:

Publisher: native-wheels.yml on unicompute/gemstone-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemstone_py_native-0.1.3-cp311-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for gemstone_py_native-0.1.3-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 893649e61b8c34b838857043e43cff43d6a0cdac7fa4d489f9fe0c9c1f7141f4
MD5 9387a7d2cc0500705d8c02aaefb5f4d6
BLAKE2b-256 c7d99650a91e5111ce12f71af66776626fedd7c3b5be16b38fc3dd0ef5fb7c97

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemstone_py_native-0.1.3-cp311-abi3-win_amd64.whl:

Publisher: native-wheels.yml on unicompute/gemstone-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemstone_py_native-0.1.3-cp311-abi3-manylinux_2_34_armv7l.whl.

File metadata

File hashes

Hashes for gemstone_py_native-0.1.3-cp311-abi3-manylinux_2_34_armv7l.whl
Algorithm Hash digest
SHA256 d9768482c25311a98dd02f1b3c4e6662ae03c8d812e6454184e236cfab86b18d
MD5 677bae1aa430660374d076a58329fe06
BLAKE2b-256 be48392f82f5e1acde9e1951154630c9d919a6835e05da32bd9b75616415e80d

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemstone_py_native-0.1.3-cp311-abi3-manylinux_2_34_armv7l.whl:

Publisher: native-wheels.yml on unicompute/gemstone-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemstone_py_native-0.1.3-cp311-abi3-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for gemstone_py_native-0.1.3-cp311-abi3-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 0baffc5f3ec82db904be998d4c5b3ca3a665dc8e3fb174ba8239539f27c6acb2
MD5 3ec588c5201aef5f714529801b32f7c5
BLAKE2b-256 18d79beb4217fc0c2265a7370baf99d5b2ab59ec0ada5b2246aa60da4c5fc4de

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemstone_py_native-0.1.3-cp311-abi3-manylinux_2_31_x86_64.whl:

Publisher: native-wheels.yml on unicompute/gemstone-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemstone_py_native-0.1.3-cp311-abi3-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for gemstone_py_native-0.1.3-cp311-abi3-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 e76d8e26bea39911ad09c1a30f62253864bfe4625e79494e4d7c4e1be9d8d978
MD5 beec9c9964f3d6c2bb0f461a2a0196d7
BLAKE2b-256 e6a021a5a1ea0ce262ff1fdf0cc01a00bfaab2b9ca5ff115069b5f95cf42a7b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemstone_py_native-0.1.3-cp311-abi3-manylinux_2_31_aarch64.whl:

Publisher: native-wheels.yml on unicompute/gemstone-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemstone_py_native-0.1.3-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gemstone_py_native-0.1.3-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7afa5e86a873e0625005418c9facaada407f7c908f6b4c8a87f596e4a11749b2
MD5 c5353a1b3cc84ebe8f78390b02edc4ba
BLAKE2b-256 ffada402bc58880a3ece4555e2f0d8e3456f2439a7cfb6d92bcf40d58ae81b7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemstone_py_native-0.1.3-cp311-abi3-macosx_11_0_arm64.whl:

Publisher: native-wheels.yml on unicompute/gemstone-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemstone_py_native-0.1.3-cp311-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for gemstone_py_native-0.1.3-cp311-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c4310c111080746e02cee5ec4efc88df6b78659ed207f0a6626ba7f7b8d6e2bf
MD5 b1f0e92b794ab46b0b09dcfecafbd2dc
BLAKE2b-256 c3b70b7bc3394a146da9dfd5e92d344c5b85f0b0f135225ca924733037f71c33

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemstone_py_native-0.1.3-cp311-abi3-macosx_10_12_x86_64.whl:

Publisher: native-wheels.yml on unicompute/gemstone-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page