Skip to main content

Python bindings for Money Manager EX database library

Project description

MMEX Lib

Rust library for interacting with Money Manager EX data and logic, with UniFFI support for multi-language bindings.

⚠️ PROJECT STATUS: BETA This library is in beta phase. API changes may occur. Use with caution.


🌐 Documentación en Español (Spanish)

Toda la documentación detallada y guías en español están disponibles en: 👉 docs-es/README.md


🛠 Prerequisites

  • Rust: cargo installed.
  • Python 3.8+: python3 installed.
  • Kotlin/Java: kotlinc and java (JRE) installed.

🚀 Quick Start (Python)

Option A: Automatic Setup (Recommended)

make setup

This will create a virtual environment, install dependencies, and build the library.

Option B: Manual Setup

  1. Create a virtual environment:

    python3 -m venv .venv
    source .venv/bin/activate
    
  2. Install dependencies:

    pip install maturin rich
    
  3. Install the library:

    maturin develop
    
  4. Usage:

    import mmex_lib
    engine = mmex_lib.MmexEngine("my_finance.mmb", None)
    

🏗 Development

We use a Makefile to simplify common development tasks.

Installation & Build

make setup      # Complete setup (venv + deps + lib)
make develop    # Recompile after Rust changes
make build      # Build release wheel

Running Tests

make test-rust    # Rust unit and integration tests
make test-python  # Python examples as integration tests
make test         # Run all tests

Manual Binding Generation

To generate bindings for other languages (Kotlin, Swift, etc.):

cargo run --bin uniffi-bindgen generate --library target/debug/libmmex_lib.so --language <LANGUAGE> --out-dir <OUT_DIR>

📁 Project Structure

  • src/: Core logic in Rust (Domain, Infrastructure, Services).
  • python/mmex_lib/: Python package wrapper.
  • examples/: Usage examples in different languages.
  • docs/: Technical documentation and plans.

⚠️ Troubleshooting

"externally-managed-environment" error

This happens when trying to install packages globally on modern Linux distributions. Always use a virtual environment:

python3 -m venv .venv
source .venv/bin/activate

patchelf warning

Maturin may show a warning about patchelf. This doesn't affect local development. For wheel distribution:

sudo apt install patchelf

📄 License

Check the LICENSE file for details.

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

mmex_lib-0.1.0b1.tar.gz (16.1 MB view details)

Uploaded Source

Built Distributions

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

mmex_lib-0.1.0b1-py3-none-win_amd64.whl (3.5 MB view details)

Uploaded Python 3Windows x86-64

mmex_lib-0.1.0b1-py3-none-manylinux_2_28_x86_64.whl (3.8 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

mmex_lib-0.1.0b1-py3-none-manylinux_2_28_aarch64.whl (3.9 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

File details

Details for the file mmex_lib-0.1.0b1.tar.gz.

File metadata

  • Download URL: mmex_lib-0.1.0b1.tar.gz
  • Upload date:
  • Size: 16.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mmex_lib-0.1.0b1.tar.gz
Algorithm Hash digest
SHA256 6da072e6da05ab2bd6cd14b0a394bbc0b2d9a7c676cbe6461ca085cae0687271
MD5 7505d46e298ae7de313fdeb7109d414b
BLAKE2b-256 d7d40ae6742157c98ecd2ca181e38fb05fe0561d3d96d7393e411212fe25b855

See more details on using hashes here.

Provenance

The following attestation bundles were made for mmex_lib-0.1.0b1.tar.gz:

Publisher: publish.yml on PatricioRios/mmex_lib

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

File details

Details for the file mmex_lib-0.1.0b1-py3-none-win_amd64.whl.

File metadata

  • Download URL: mmex_lib-0.1.0b1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mmex_lib-0.1.0b1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 7f8a1a7ab8f3020f179c1f4268b2d797a2b7a32b2081eec5050e46cc63b8aedf
MD5 30c2130c02afa90047c1352f83a77e7f
BLAKE2b-256 0168bb59e782aaf9bc39cc3f430d80cc80cbfe48c8f83063b64c426c8c648313

See more details on using hashes here.

Provenance

The following attestation bundles were made for mmex_lib-0.1.0b1-py3-none-win_amd64.whl:

Publisher: publish.yml on PatricioRios/mmex_lib

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

File details

Details for the file mmex_lib-0.1.0b1-py3-none-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mmex_lib-0.1.0b1-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1ef7a27779efcc4142c9e9c5c506ffdf0b9cbb68557e5d4d9f21c5ff3513eb93
MD5 ad3de44ec7d30af714903e37125aa90f
BLAKE2b-256 e836362983f595fc3d91316cdf06d172e15253ff31c59bc970a5699029ea13b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mmex_lib-0.1.0b1-py3-none-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on PatricioRios/mmex_lib

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

File details

Details for the file mmex_lib-0.1.0b1-py3-none-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mmex_lib-0.1.0b1-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a59cca5690acd008e932ed0aa0ad747c93bdb914c2b587d854a8f924b67ad586
MD5 a3e0e4ddfaf4a8565e571bb6350bdb27
BLAKE2b-256 16866d06c38d85f8328bb0bf8f796c12e49c54a4c095f31965b3fe9533c6f1ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for mmex_lib-0.1.0b1-py3-none-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on PatricioRios/mmex_lib

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