C++ core rewrite of common Xponge workflows with a Python compatibility layer
Project description
XpongeCPP
Docs / 文档入口
- English:
- 中文:
XpongeCPP is a new C++ implementation of common Xponge workflows with a thin Python compatibility layer.
The original Xponge repository is used only as a reference implementation and regression baseline. This repository does not share the original Python object model internally.
Installation
PyPI-style installation target
The packaging target is:
pip install XpongeCPP
After installation, both of these should work:
import XpongeCPP
import Xponge
The wheel is configured to include both:
src/XpongeCPPsrc/Xponge
so old Xponge package-name imports can continue to work after installation.
Automatic optional chemistry dependencies
The package now declares a practical default dependency set for pip users:
numpyPubChemPyMDAnalysisrdkitpyscfon non-Windows platformsXpongeLib
Windows automatically skips pyscf through environment markers.
XpongeLib is included so legacy gaff.parmchk2_gaff(...) workflows can
resolve the XpongeLib bridge automatically after installation.
See:
GitHub Actions packaging matrix
The repository CI currently builds packages on:
- Linux x64:
ubuntu-24.04 - Linux arm64:
ubuntu-24.04-arm - macOS Intel:
macos-15-intel - macOS arm64:
macos-15 - Windows x64:
windows-2025
Validation is split into two layers:
- all platforms run a minimal wheel smoke test with
numpyinstalled - Linux x64 additionally runs a full dependency install smoke test
This keeps wheel validation broad across operating systems and CPU architectures without making every matrix job depend on the full optional chemistry stack.
v1 Scope
- Amber-first force-field workflows.
- Flat C++ storage with
Molecule,Residue, andResidueTypeview semantics. - Common Python entry points such as
load_pdb,load_mol2,Add_Solvent_Box,Set_Box_Padding,Save_SPONGE_Input, andAssign. - Numeric equivalence goals for SPONGE input, not byte-for-byte compatibility.
Development Environments
The lightweight development path still uses rtk uv:
rtk uv pip install -e . --force-reinstall --no-cache-dir
rtk uv run pytest -q
Full Assign validation needs optional chemistry backends. Use pixi for a reproducible environment with RDKit, PubChemPy, and PySCF:
pixi run install-dev
pixi run test-assign-full
pixi run test-resp
pixi run test
PubChem network tests remain opt-in through the test environment; default Pixi tests use local mocks or dependency checks and do not require live network access.
Documentation
- Installation guide:
- API overview:
- Release guide:
- Architecture / migration status:
Packaging roadmap note
The current repository uses a hand-written GitHub Actions workflow plus
scripts/build_pypi.py for packaging validation. We are deliberately keeping
this simpler workflow for now because it makes the Xponge/XpongeCPP dual
package layout and the minimal-vs-full smoke split easy to audit.
cibuildwheel is still a good future option once the wheel matrix and release
policy stabilize further, but it is not the current default.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xpongecpp-0.1.2.tar.gz.
File metadata
- Download URL: xpongecpp-0.1.2.tar.gz
- Upload date:
- Size: 6.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e86ad63bac71d352320ee6097ea775426fe6ad8f1434770c019c056b29f1b0f1
|
|
| MD5 |
0c46970187745b9cd3db74fc32fb0ec3
|
|
| BLAKE2b-256 |
24b716fc3a7d0457a6119cbdfc615a1017a6a15c1de984f40dc1e102f438fcef
|
Provenance
The following attestation bundles were made for xpongecpp-0.1.2.tar.gz:
Publisher:
publish-pypi.yml on yuhaosimba/XpongeCPP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xpongecpp-0.1.2.tar.gz -
Subject digest:
e86ad63bac71d352320ee6097ea775426fe6ad8f1434770c019c056b29f1b0f1 - Sigstore transparency entry: 1580583336
- Sigstore integration time:
-
Permalink:
yuhaosimba/XpongeCPP@2f3988c2ca6952982e2b1f101b8fce61bb9c6760 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/yuhaosimba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@2f3988c2ca6952982e2b1f101b8fce61bb9c6760 -
Trigger Event:
release
-
Statement type:
File details
Details for the file xpongecpp-0.1.2-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: xpongecpp-0.1.2-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf9ec268a3d8de96986dd41c2420edc2324cec168d6586809a3e8b4723f14536
|
|
| MD5 |
7051fb4e7f62e40604bbf2475bd3febc
|
|
| BLAKE2b-256 |
b75a5b838a09a34b58ccefd33340f9143a496644bc9e561ad92bbd3080f1abae
|
Provenance
The following attestation bundles were made for xpongecpp-0.1.2-cp311-cp311-win_amd64.whl:
Publisher:
publish-pypi.yml on yuhaosimba/XpongeCPP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xpongecpp-0.1.2-cp311-cp311-win_amd64.whl -
Subject digest:
bf9ec268a3d8de96986dd41c2420edc2324cec168d6586809a3e8b4723f14536 - Sigstore transparency entry: 1580584162
- Sigstore integration time:
-
Permalink:
yuhaosimba/XpongeCPP@2f3988c2ca6952982e2b1f101b8fce61bb9c6760 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/yuhaosimba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@2f3988c2ca6952982e2b1f101b8fce61bb9c6760 -
Trigger Event:
release
-
Statement type:
File details
Details for the file xpongecpp-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: xpongecpp-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53a9431ba17935380005ea9c4f8995ea064ec63be9e41a4d0b65f6748a4df347
|
|
| MD5 |
473850c5188cdddef0aaed2e8017862b
|
|
| BLAKE2b-256 |
ff3bb75c67264f80b8ee61f6bbde41fafade6c6ffe06a439764bafabc2912abf
|
Provenance
The following attestation bundles were made for xpongecpp-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
publish-pypi.yml on yuhaosimba/XpongeCPP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xpongecpp-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
53a9431ba17935380005ea9c4f8995ea064ec63be9e41a4d0b65f6748a4df347 - Sigstore transparency entry: 1580583482
- Sigstore integration time:
-
Permalink:
yuhaosimba/XpongeCPP@2f3988c2ca6952982e2b1f101b8fce61bb9c6760 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/yuhaosimba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@2f3988c2ca6952982e2b1f101b8fce61bb9c6760 -
Trigger Event:
release
-
Statement type:
File details
Details for the file xpongecpp-0.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: xpongecpp-0.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.11, manylinux: glibc 2.26+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6559782143c3a9056e26d19fe0bd167cad2f1b71af74c5527a63208a858ec0b5
|
|
| MD5 |
6b4da5192d1ab79f0a3c70a472dad8f0
|
|
| BLAKE2b-256 |
d764fb15a50a27d7e509d4d99cb7b079a96b6205bae60e4ea267f503b62836d0
|
Provenance
The following attestation bundles were made for xpongecpp-0.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
publish-pypi.yml on yuhaosimba/XpongeCPP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xpongecpp-0.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
6559782143c3a9056e26d19fe0bd167cad2f1b71af74c5527a63208a858ec0b5 - Sigstore transparency entry: 1580584293
- Sigstore integration time:
-
Permalink:
yuhaosimba/XpongeCPP@2f3988c2ca6952982e2b1f101b8fce61bb9c6760 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/yuhaosimba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@2f3988c2ca6952982e2b1f101b8fce61bb9c6760 -
Trigger Event:
release
-
Statement type:
File details
Details for the file xpongecpp-0.1.2-cp311-cp311-macosx_15_0_x86_64.whl.
File metadata
- Download URL: xpongecpp-0.1.2-cp311-cp311-macosx_15_0_x86_64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.11, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1baa47f820083e53e4a78199302883d4396cb87d8adf285eee8f3f672a529f0
|
|
| MD5 |
6f9e7811f7526989374b45fb391efd14
|
|
| BLAKE2b-256 |
7f5c45dc51bb0d49832f4bb62f8060b8bef9b46898f0cdfacef0d1856eccb16b
|
Provenance
The following attestation bundles were made for xpongecpp-0.1.2-cp311-cp311-macosx_15_0_x86_64.whl:
Publisher:
publish-pypi.yml on yuhaosimba/XpongeCPP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xpongecpp-0.1.2-cp311-cp311-macosx_15_0_x86_64.whl -
Subject digest:
f1baa47f820083e53e4a78199302883d4396cb87d8adf285eee8f3f672a529f0 - Sigstore transparency entry: 1580583915
- Sigstore integration time:
-
Permalink:
yuhaosimba/XpongeCPP@2f3988c2ca6952982e2b1f101b8fce61bb9c6760 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/yuhaosimba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@2f3988c2ca6952982e2b1f101b8fce61bb9c6760 -
Trigger Event:
release
-
Statement type:
File details
Details for the file xpongecpp-0.1.2-cp311-cp311-macosx_15_0_arm64.whl.
File metadata
- Download URL: xpongecpp-0.1.2-cp311-cp311-macosx_15_0_arm64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.11, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75341730b35c3e6d32529dfec246d5775dcd489fe4c268b17bb5d23276f08101
|
|
| MD5 |
257649dcc78a43dd59c0e902f3d67201
|
|
| BLAKE2b-256 |
40a63d3f0a5a072f0a842cb7bddf4225e94886ffb07baf44f6cd9b2b5060206e
|
Provenance
The following attestation bundles were made for xpongecpp-0.1.2-cp311-cp311-macosx_15_0_arm64.whl:
Publisher:
publish-pypi.yml on yuhaosimba/XpongeCPP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xpongecpp-0.1.2-cp311-cp311-macosx_15_0_arm64.whl -
Subject digest:
75341730b35c3e6d32529dfec246d5775dcd489fe4c268b17bb5d23276f08101 - Sigstore transparency entry: 1580583712
- Sigstore integration time:
-
Permalink:
yuhaosimba/XpongeCPP@2f3988c2ca6952982e2b1f101b8fce61bb9c6760 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/yuhaosimba
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@2f3988c2ca6952982e2b1f101b8fce61bb9c6760 -
Trigger Event:
release
-
Statement type: