Skip to main content
Markdown

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.

ModelUse it forArtifact and operational boundary
Native applicationFile processing, numerical workers, database clients, or Kafka consumersExecutable plus compatible native libraries; application owns service connections and recovery
Embedded DuckDBSQL and custom calculations in one standalone processNative executable with the embedded DuckDB engine
DuckDB extensionCustom SQL functions in an existing CLI or Python workflowExtension loaded by the host DuckDB engine
PostgreSQL or MySQL functionBounded calculations inside a SQL queryNative server library and SQL declarations; requires host-specific compatibility and installation privileges
Redis moduleShort custom commands close to Redis dataModule 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​

ComponentInterfacesStart here
DataArrow tables, native arrays, Parquet, IPC, CSV, and other file formatsTables and files
AvroContainer files, projected batches, generated records, schema resolutionAvro guide
ProtobufGenerated typed messages and runtime descriptor reflectionProtobuf guide
DatabasesDuckDB, PostgreSQL, MySQL, and Redis clients and server integrationsDatabase reference
StreamingKafka producers, consumers, transactions, and Avro schema registry codecsKafka guide
Native interoperabilityArrow C Data buffers and Protobuf wire helpersNative 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.