Keep Python for data handling and reports, use Rust for memory-safe processing, and bring in C++ or Java where you already have code. Conflate lets those parts share values in one .confl file. Version 0.4 adds typed inputs and outputs to each block.
Try the Python and Rust orders example: Rust rejects invalid quantities and overflowing totals; Python formats the accepted orders into a report.
@python(out: seed: int)
seed = 40
@cpp(in: seed: int; out: answer: int)
int answer = seed.as<int>() + 2;
@python(in: answer: int)
print(answer) # 42
Blocks keep their host language syntax. Conflate checks required inputs and
outputs, generates native entry points, and moves portable values between
Python, C++, Rust, Java, and Go. Existing bare markers and persistent
cross-language functions remain supported.
Try it
Install Python 3.11+ and a C++20 compiler (g++ or clang++), then:
python -m pip install https://github.com/Hacker-lot/conflate/releases/download/v0.4.0/conflate_lang-0.4.0-py3-none-any.whl
git clone https://github.com/Hacker-lot/conflate.git
cd conflate
conflate --doctor
conflate --run-source examples/typed-statistics.confl
Expected output: 4 readings; average 20.5 C.
Build before running
conflate --build examples/typed-pipeline.confl -o build/typed-pipeline
conflate --run-build build/typed-pipeline
The new local build directory contains a source snapshot, manifest, and
prepared native artifacts. Building does not execute program statements.
Source integrity, Conflate version, host, and relevant language registrations
are checked when running a build.
Scope
This is an experimental orchestration language with runtime boundary checks,
not a standalone binary compiler or a whole-program static type checker.
Keep Python, Conflate, and the relevant toolchains installed. Values are copied
through JSON; native input-declaration discovery and exported function signatures
have documented limits. Go and JavaScript have additional integer precision
limits. Registered command-manifest backends still build at runtime.
The release also fixes Unix launcher exit-code propagation. The local suite
and clean-wheel installation were tested with real native toolchains.
See the language specification,
examples, and
CI. Reproducible bug reports
and feedback on the boundary semantics are welcome.
Full polyglot walkthrough
Run Python, C++, Rust, Java, and Go in one typed pipeline: tour and commands. The example and walkthrough GIF are attached to this release. An optional PHP command-manifest bridge is also attached and tested in CI. These examples work with the 0.4.0 runtime; the release wheel is unchanged.