chemapproxy
Python bindings and proxy interface for ChemApp — enabling thermochemical and phase equilibrium calculations directly from Python.
🚀 Overview
chemapproxy is a Python package that provides a lightweight interface to ChemApp, a widely used thermochemical calculation engine. It allows you to:
- Access ChemApp functions from Python
- Perform thermodynamic and phase equilibrium calculations
- Integrate ChemApp workflows with NumPy, Pandas, and modern Python tooling
- Extend or customize bindings for advanced use cases
This package is designed for scientists, engineers, and researchers working in:
- Thermodynamics
- Metallurgy
- Materials science
- Chemical engineering
✨ Features
- 🔗 Direct bindings to ChemApp core functions
- ⚡ Optional integration with official
chemappPython package (if installed) - 🧱 Modular structure (
raw,entities,custom) - 🧮 NumPy & Pandas compatibility
- 🛠 Cython-based performance optimizations
- 🧩 Extensible architecture for custom workflows
📦 Installation
Install from PyPI:
pip install chemapproxy
Requirements
- Python 3.9 – 3.11
- NumPy
- Pandas
- Cython
- PyYAML
- pyparsing
- chemformulapy
⚠️ Note: ChemApp binaries (DLLs) are required for full functionality and must be available on your system.
⚙️ Setup
Ensure that ChemApp dynamic libraries are accessible:
- On Windows:
.dllfiles (e.g.,ca_vc_e_x64.dll) - Add them to your system
PATHor project directory
🧪 Quick Example
import chemapproxy.raw as ca
# Example: check architecture
print("Running on 64-bit:", ca.isx64())
# Further ChemApp calls depend on your data and setup
🧩 Project Structure
chemapproxy/
├── src/chemapproxy/
│ ├── raw.py # Low-level ChemApp bindings
│ ├── entities.py # Data structures and abstractions
│ ├── custom.py # Higher-level utilities
│ └── __init__.py
├── pyproject.toml
├── setup.py
└── README.md
🔌 Integration with ChemApp
If the official ChemApp Python package (chemapp.basic) is installed,
chemapproxy will automatically detect and use it as a backend.
Otherwise, it falls back to direct dynamic library bindings via ctypes.
🛠 Development
Clone the repository:
git clone https://github.com/evnekdev/chemapproxy.git
cd chemapproxy
Install in editable mode:
pip install -e .
🧱 Building
To build distributions:
python -m build
Wheels and source distributions will be available in dist/.
📊 Use Cases
- Phase equilibrium simulations
- Thermodynamic database evaluation
- Metallurgical process modeling
- Research and teaching in thermochemistry
⚠️ Limitations
- Requires external ChemApp libraries
- Platform-specific binaries (especially Windows-focused)
- Some low-level functions may require domain knowledge
🗺 Roadmap
- Improved documentation and examples
- Cross-platform support enhancements
- Higher-level API abstractions
- Expanded test coverage
🤝 Contributing
Contributions are welcome!
- Fork the repository
- Create a feature branch
- Submit a pull request
📄 License
MIT License — see LICENSE for details.
👤 Author
Evgenii Nekhoroshev
📧 evgnekhoroshev@gmail.com
🔗 https://github.com/evnekdev
🔗 Links
- Homepage: https://github.com/evnekdev/chemapproxy
- Issues: https://github.com/evnekdev/chemapproxy/issues
💡 Acknowledgements
- ChemApp by GTT-Technologies
- Scientific Python ecosystem (NumPy, Pandas)
Metadata
Release files for chemapproxy 1.0.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 | |
|---|---|---|---|
| chemapproxy-1.0.0.tar.gz | 39.9 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chemapproxy-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
| chemapproxy-1.0.0-cp311-cp311-win_amd64.whl | CPython 3.11 | CPython 3.11 | Windows x86-64 | Details |
Total release size: 1.2 MB
Release files / chemapproxy-1.0.0.tar.gz
| Download URL | chemapproxy-1.0.0.tar.gz |
|---|---|
| Size | 39.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2b03701059f6e6b76521d4ed6802811907487547629156d76303ac26e1c8749f
|
|
BLAKE2b-256 checksum How to use checksums |
ba866d153c1dde3601306deba1bd88366f8fc09958abdc9b05b63105f40962d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.2 CPython/3.11.7 Windows/10
|
Release files / chemapproxy-1.0.0-py3-none-any.whl
| Download URL | chemapproxy-1.0.0-py3-none-any.whl |
|---|---|
| Size | 40.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9e18b675834244067f6074a94c15953f603f09665fb613bfb209db013bc31e06
|
|
BLAKE2b-256 checksum How to use checksums |
e062a5e876a2c7c3d3c623a43e70fe018cba79312a46ba18997d8b59be860709
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.2 CPython/3.11.7 Windows/10
|
Release files / chemapproxy-1.0.0-cp311-cp311-win_amd64.whl
| Download URL | chemapproxy-1.0.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d81531bf0bc80c9d1129e21c53d7857beceb18cbf41ed63e9179749414ef42fb
|
|
BLAKE2b-256 checksum How to use checksums |
5fd7af37aa540ceaf28d809ab11954603b56fb97617594c51017776518efe651
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.2 CPython/3.11.7 Windows/10
|