Introduction

OptArrow

Solve optimization problems anywhere, in any language, with any solver.

OptArrow is an optimization integration engine designed to connect optimization clients and solver backends through a stable, high-performance transport layer. Its current runtime centers on Python and Julia backends, and it can also be called from environments such as MATLAB through a lightweight client interface.

Motivation

Modern optimization workflows often involve multiple components:

  • Python is widely used for data preparation, orchestration, and web service development.

  • Julia, on the other hand, offers state-of-the-art numerical solvers with exceptional performance for mathematical programming.

  • MATLAB is still widely used in scientific and engineering workflows and benefits from a clean client path to the same backend services.

However, bridging these two environments remains challenging. Users frequently encounter issues with data format inconsistencies, communication overhead, and the lack of a unified interface for optimization models.

OptArrow was developed to close this gap.

What Problem Does OptArrow Solve?

  • Cross-language communication bottlenecks: Passing large-scale optimization models between Python and Julia often involves serialization overhead, format mismatches, and maintenance burdens.

  • Inconsistent model representations: Different solvers have their own modeling APIs (for example, Pyomo and JuMP), making solver switching difficult and error-prone.

  • Scalability and memory inefficiency: Traditional formats such as JSON or .mat files struggle with large sparse matrices and high-dimensional data.

OptArrow’s Solution

OptArrow introduces a streamlined, interoperable architecture with the following features:

  • Unified in-memory model representation: Based on the Apache Arrow columnar format, OptArrow enables zero-copy data exchange between Python and Julia.

  • Protocol-based model definitions: Optimization problems (for example, Linear Programming and Quadratic Programming) are described using well-defined schemas, independent of solver-specific syntax.

  • Multi-backend support: Users can run the same model through solvers like HiGHS, Gurobi, Mosek, or GLPK by switching backend configuration.

  • Efficient communication channels: OptArrow supports HTTP and Arrow Flight RPC, providing flexibility for both local and distributed deployments.

  • Reusable client integrations: client-specific adapters can remain thin while OptArrow stays solver- and domain-generic.

Introduction

Maintenance and Contribution

Learn More