Skip to main content

chili

PyPI - Version Visual Studio Marketplace Version PyPI - Version

Chili

A programming language for data analysis and engineering, written in Rust.

Chili uses Polars for data manipulation and Arrow/Parquet for data storage.

Language Syntaxes

Chili provides two language syntaxes:

  • chili — a modern syntax similar to JavaScript.
  • pepper — a vintage syntax similar to q.

Features

  • Polars-powered — full Polars DataFrame support for high-performance data manipulation
  • Arrow / Parquet storage — native support for columnar data formats
  • Partitioned tables — date-partitioned Parquet storage with partition pruning
  • Lazy evaluation — lazy DataFrames with collect for deferred computation
  • IPC / TCP — built-in TCP listener for remote connections
  • Tick / Sub — publish-subscribe infrastructure for real-time data
  • Job scheduler — periodic job execution and memory monitoring
  • Cross-platform — Linux, macOS, and Windows

Installation

pip install chili-pie

From source

cargo build --release --bin chili

Python bindings (chili-sauce)

pip install chili-sauce

Quick Start

Launch the REPL:

# chili syntax (default)
chili

# pepper syntax
chili -P

Evaluate a script:

chili script.chi

Architecture

crates/
├── chili-bin      # CLI binary & REPL
├── chili-core     # Engine state, evaluator, IPC, and built-in functions
├── chili-op       # Data operations (partitioned I/O, scan, eval)
└── chili-parser   # Chumsky-based parser for both syntaxes
Package Description
chili-pie Chili runtime distributed as a Python wheel
chili-sauce Python bindings for EngineState via PyO3

Development

Appending while a snapshot is being written

For a subscriber buffer that is queried or flushed concurrently, use the symbol form of vstack (Pepper syntax):

.s.upd: {[data] vstack[`.s.buf; data]};
.s.flush: {[path; lo; hi]
  window: select from .s.buf where seq > lo, seq <= hi;
  wparquet[path; window; 3]
};

vstack[table_symbol; dataframe] atomically appends chunks and returns the incoming row count. It creates a missing table and follows the existing table's dtypes and timezones, like symbol upsert. A failed append preserves the table. Existing vstack[dataframe; dataframe] calls still return a new dataframe without changing either input.

This append path preserves the old buffers held by snapshots. Ordinary upsert extends the backing storage and may copy the accumulated data when a snapshot is alive. Use vstack consistently for such a buffer: switching back to upsert can rechunk and copy its history.

Each input chunk adds metadata; batch incoming rows where practical and manage retention. This operation does not compact chunks, reclaim flushed rows, or guarantee a wall-clock latency bound. Filtering and Parquet preparation can still allocate. Run the flush through fn_call from a separate calling thread; that call releases the GIL and runs independently of the subscriber's apply thread. Coordinate retention with the writer, and advance the flushed sequence only after a successful write under the application's durability policy.

wparquet[path; dataframe; level] honors zstd levels 1–22. File sizes can still differ from Python Polars because writer versions and row-group/page settings can differ.

Build and test

# Build
cargo build --bin chili

# Test
cargo test

# Clippy
cargo clippy --fix --allow-dirty

# Build & install Python runtime wheel
maturin build --release --out dist --manifest-path crates/chili-bin/Cargo.toml

# Build & install Python bindings
maturin develop --release --manifest-path crates/chili-py/Cargo.toml

A Taskfile is provided for common workflows — run task --list to see all available tasks.

References

  • Polars — an open-source library for data manipulation
  • chumsky — a high-performance parser combinator library
  • kola — source code reused for interfacing with q
  • Nushell — a new type of shell

Thanks to the authors of these projects and all other open-source projects for their great work.

License

MIT

Metadata

Release files for chili-pie 0.11.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for chili-pie 0.11.2
File
chili_pie-0.11.2-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
chili_pie-0.11.2-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
chili_pie-0.11.2-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
chili_pie-0.11.2-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details
chili_pie-0.11.2-py3-none-manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64 Details
chili_pie-0.11.2-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
chili_pie-0.11.2-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 207.5 MB

Release files / chili_pie-0.11.2-py3-none-win_amd64.whl

Download URL chili_pie-0.11.2-py3-none-win_amd64.whl
Size 32.5 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
90481727dde6450452f3e7af335236bdfc22fe6c0459aa2a6b231e0b98a6918a
BLAKE2b-256 checksum
How to use checksums
838e21c424f2f284ddfa258547288e09c45d12821fe62ac82a2d5b136b211657
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / chili_pie-0.11.2-py3-none-musllinux_1_2_x86_64.whl

Download URL chili_pie-0.11.2-py3-none-musllinux_1_2_x86_64.whl
Size 30.3 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
077d7e42cdc158e5d1142d14987ae85ff782af54269f2caff23cb8613ac610ae
BLAKE2b-256 checksum
How to use checksums
98b5de48fd0c3a6bba8dc32ff401f93f9866bb0aa60d4376571815c80a970157
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / chili_pie-0.11.2-py3-none-musllinux_1_2_aarch64.whl

Download URL chili_pie-0.11.2-py3-none-musllinux_1_2_aarch64.whl
Size 27.8 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
c1265e94dd16080c9367407ebbe6b280bc276e052a6af8f9766aad3f201b327f
BLAKE2b-256 checksum
How to use checksums
10ed9184b88d30678b80f3a5aaa20707dab7f6791c1b2767e753dbf3e33d6e9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / chili_pie-0.11.2-py3-none-manylinux_2_28_x86_64.whl

Download URL chili_pie-0.11.2-py3-none-manylinux_2_28_x86_64.whl
Size 31.7 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
d871bb5c66725670561776ddeca0e2392c1f406954d7d680f6bfbe3c3670662c
BLAKE2b-256 checksum
How to use checksums
adfd21c3584c75f8035f50aa7121c541c201dbdaac7d90ace03551c96404bff2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / chili_pie-0.11.2-py3-none-manylinux_2_28_aarch64.whl

Download URL chili_pie-0.11.2-py3-none-manylinux_2_28_aarch64.whl
Size 27.9 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
499c728d51e5fba287f0072b619bd680b48e913721f83b76f309f333ae9bac38
BLAKE2b-256 checksum
How to use checksums
60f8a607aa6ca6f12e83aa97cd3076e0b3da014b50be5178509a6e023916f5ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / chili_pie-0.11.2-py3-none-macosx_11_0_arm64.whl

Download URL chili_pie-0.11.2-py3-none-macosx_11_0_arm64.whl
Size 27.2 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4ee96b21f6a1d0817fb2014854c6df8e236f2d611cc335dffaba0fa7eea2cdf6
BLAKE2b-256 checksum
How to use checksums
e0ea4b30a0d432bf90845ee899e64279a05380f20adb6ec74632988a45cc1c41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / chili_pie-0.11.2-py3-none-macosx_10_12_x86_64.whl

Download URL chili_pie-0.11.2-py3-none-macosx_10_12_x86_64.whl
Size 30.1 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
f72b69f7892eaee6caa0f4cf5d0d6fe2d5fbc4da645fdeeb97f470f6bd55f373
BLAKE2b-256 checksum
How to use checksums
95f815909e7699406439ebfc1d000e11ec4378230489f41141bbf607ee50e507
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for chili-pie 0.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.11.2 This release

7 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page