Platform overview
Exaloop combines the Codon compiler with enterprise SDKs for data formats, databases, streaming, profiling, and optimization. Write application logic using Codon's Python-based language, connect it to the surrounding data systems, and compile a native executable or a database-loadable library.
Codon supplies native compilation and its standard library, including native NumPy. Exaloop adds integrations and delivery tools around that compiler. A native application does not require a Python interpreter unless it explicitly uses Python interoperability. Porting an existing Python application still requires checking its language semantics and library dependencies; compilation is not a guarantee that every Python package runs natively.
Choose an execution model
The right boundary depends on where the data lives, how the application is orchestrated, and who controls deployment.
| Model | Use it for | Artifact and operational boundary |
|---|---|---|
| Native application | File processing, numerical workers, database clients, or Kafka consumers | Executable plus compatible native libraries; application owns service connections and recovery |
| Embedded DuckDB | SQL and custom calculations in one standalone process | Native executable with the embedded DuckDB engine |
| DuckDB extension | Custom SQL functions in an existing CLI or Python workflow | Extension loaded by the host DuckDB engine |
| PostgreSQL or MySQL function | Bounded calculations inside a SQL query | Native server library and SQL declarations; requires host-specific compatibility and installation privileges |
| Redis module | Short custom commands close to Redis data | Module loaded into the server process; replacement requires a restart |
The database client APIs connect to ordinary servers without installing a Codon extension. Server functions and modules instead execute within the database's process and privileges. Their deployment procedures, error behavior, and concurrency rules are documented separately in each integration guide.
Connect the data path
| Component | Interfaces | Start here |
|---|---|---|
| Data | Arrow tables, native arrays, Parquet, IPC, CSV, and other file formats | Tables and files |
| Avro | Container files, projected batches, generated records, schema resolution | Avro guide |
| Protobuf | Generated typed messages and runtime descriptor reflection | Protobuf guide |
| Databases | DuckDB, PostgreSQL, MySQL, and Redis clients and server integrations | Database reference |
| Streaming | Kafka producers, consumers, transactions, and Avro schema registry codecs | Kafka guide |
| Native interoperability | Arrow C Data buffers and Protobuf wire helpers | Native interfaces |
Conversions have explicit contracts for types, missing values, and ownership. For example, a nullable Arrow column needs an optional result type or a missing mask, while a borrowed numeric array must remain unchanged during use. Review those contracts at the points where data crosses between representations.
Measure and optimize
Profiling records function traces and memory metrics for standalone native applications. Its elapsed-time measurements include waiting, so use them to distinguish expensive computation from I/O and to choose the next investigation. Confirm changes with unprofiled measurements.
PGO collects separate execution counts from replayable training inputs, builds candidates, and evaluates them against configured correctness, performance, and resource criteria. Keep training, tuning, and holdout inputs separate. These workflows apply to standalone applications rather than functions loaded inside database servers.
Build a reproducible delivery path
The distribution supplies a matching compiler, CLI,
SDKs, and native tools. Define targets in exaloop.toml, record the active
release in a project lock, and use runtime packaging to collect an executable
and its non-system native dependencies.
A runtime package still depends on the destination's OS, architecture, and native interfaces. Credentials, certificates, application data, and external services are configured separately. The deployment guide covers staging, server-library installation, and rollback.
Evaluate with a representative workload
Begin with the quickstart to verify the toolchain, then choose a cookbook recipe close to your application. For a useful evaluation, record:
- The calculation and its expected outputs, including null and malformed-input cases.
- Input size, schema, and delivery pattern, with a representative test dataset.
- The execution model and destination platform, including database or broker versions.
- Current end-to-end time and memory use, plus the improvement needed by the application.
Keep native deployment validation distinct from archive availability. The compatibility reference identifies database configurations already exercised and validation that remains outstanding. Discuss release-specific coverage and evaluation access with your Exaloop representative.