Interprocess cooperation with shared memory.
Build environments, run scripts, share data across Java, Python and more.
Dynamically construct isolated environments with dependencies from conda-forge, PyPI, Maven, and more. No manual setup needed.
Execute code asynchronously in separate processes. Scripts receive inputs and return outputs via a simple stdio-based protocol.
Zero-copy access to large data structures via shared memory buffers. Perfect for tensor and array operations across processes.
Appose was built to enable easy execution of Python-based deep learning from Java without copying tensors. But its utility extends far beyond that.
The problem: You need to use code written in another language (Python for ML, Java for image processing, Node.js for web services), but copying large arrays between processes is slow and memory-intensive.
The solution: Appose lets multiple language runtimes cooperate seamlessly with zero-copy shared memory access. Build an environment with the dependencies you need, spawn workers, and execute routines with minimal overhead.
Guiding principles: Simplicity and efficiency.
The basic workflow is simple:
Appose is designed so that each language has its own implementation, all speaking the same JSON protocol. This keeps each library lightweight and simple.
Use Python deep learning models from your Java code. Build Maven-based environments.
Learn MoreCall Java code or Node.js functions from Python. Build Python and conda environments.
Learn More