Skip to main content

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 chemapp Python 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: .dll files (e.g., ca_vc_e_x64.dll)
  • Add them to your system PATH or 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!

  1. Fork the repository
  2. Create a feature branch
  3. Submit a pull request

📄 License

MIT License — see LICENSE for details.


👤 Author

Evgenii Nekhoroshev
📧 evgnekhoroshev@gmail.com
🔗 https://github.com/evnekdev


🔗 Links


💡 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)

Source distribution for chemapproxy 1.0.0
File Size Uploaded
chemapproxy-1.0.0.tar.gz 39.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for chemapproxy 1.0.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.0.0 This release

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page