Skip to main content

seine-rs

A rules/decisioning engine over Arrow dataframes — a Rust port of a bounded Drools (DRL) subset, differentially certified against real Drools 9.44.0.Final: every supported behavior is pinned by running the same scenarios through both engines, plus multi-seed fuzz campaigns (zero divergences to completion).

import polars as pl
import seine_rs
from seine_rs import Rule, fact

@fact
class Person:
    name: str
    age: int
    score: float

@fact
class Flagged:
    name: str
    score: float

adults = Rule("Adults")
p = adults.when(Person, Person.age >= 18)
adults.then_insert(Flagged, name=p.name, score=p.score)

people = pl.DataFrame({"name": ["ada", "kurt"], "age": [36, 17], "score": [91.5, 99.0]})
res = seine_rs.run([adults], {Person: people, Flagged: []})

pl.DataFrame(res.derived["Flagged"])   # facts the rules created
pl.DataFrame(res.firings)              # full audit trail
  • Bulk, columnar boundary: Arrow tables in (polars / pyarrow / pandas ≥ 2.2, zero-copy via the PyCapsule interface), Arrow tables out. Row-object lists (@fact instances, dicts, dataclasses, Pydantic models) work too.

  • Rules in Python or DRL: the Python builder compiles to DRL text, so both paths run the identical certified engine. Anything outside the certified grammar is a definition-time CompileError. Coming from Drools: DRL here is rules-only — no package, no declare; fact types live in Python and schemas are inferred from them.

  • Full working-memory lifecycle: insert → fire → update/delete by handle → fire, each certified differentially.

  • No Python in the hot path: conditions, aggregates and salience are native; callbacks are observers over immutable results.

  • The why-machine: sess.why(handle) answers with the justifying rule, matched tuple and firing seq; justifications() walks the whole graph; acc_sources() walks an aggregate to the exact source facts that sum to its value. The audit surface is certified alongside the semantics.

  • Schemas auto-register from the @fact classes your rules reference — Session([rule]) alone works; insert_row(Account(...)) needs no type argument.

  • Linear where it counts: alpha, joins, aggregates, TMS chains/teardowns, and bulk update churn all measure linear under a doubling-size ladder run through this public API (tools/bench_wheel.py in the repo). The headline: 32k updates through a join took 712 s on the 0.4.55 wheel (quadratic — engine and bindings each contributed a lane) and 219 ms on 0.4.57. Honest counterpoint: deep logical-chain TMS still runs ~3× behind warm real-Drools on the same box — the decomposition is in the repo's commit record.

Install: pip install seine-rs — the import is import seine_rs.

Source, scenario corpus, the guided tours (demo/tours/), and the full decision log (D-001 onward): https://github.com/sl-agentics/seine

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seine_rs-0.4.57.tar.gz (432.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

seine_rs-0.4.57-cp39-abi3-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.9+Windows x86-64

seine_rs-0.4.57-cp39-abi3-musllinux_1_2_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ x86-64

seine_rs-0.4.57-cp39-abi3-musllinux_1_2_aarch64.whl (3.7 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

seine_rs-0.4.57-cp39-abi3-manylinux_2_28_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ x86-64

seine_rs-0.4.57-cp39-abi3-manylinux_2_28_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ ARM64

seine_rs-0.4.57-cp39-abi3-macosx_11_0_arm64.whl (3.2 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

seine_rs-0.4.57-cp39-abi3-macosx_10_12_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file seine_rs-0.4.57.tar.gz.

File metadata

  • Download URL: seine_rs-0.4.57.tar.gz
  • Upload date:
  • Size: 432.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for seine_rs-0.4.57.tar.gz
Algorithm Hash digest
SHA256 c1ffbc175c17c96f4199923b53959f47cbe1a821f42798c1639000f22b2b8d2c
MD5 58bb2b79c648209f2fc4b8458bdaaeff
BLAKE2b-256 1ec8fde6098f6eef91c45f4aa4d17dcd8e3ba38ab13ad98a17f107765a9283c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for seine_rs-0.4.57.tar.gz:

Publisher: ci.yml on sl-agentics/seine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file seine_rs-0.4.57-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: seine_rs-0.4.57-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for seine_rs-0.4.57-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4edb6de4b616b9b0160f338bc06569ae133640b2ea2a6a52c83485d94b81a858
MD5 a35477a3f95715f73815858a908a72f1
BLAKE2b-256 70354dadb2d243aa44e27c1549b65d9415a8612e0d6c3e634670af3355fe1054

See more details on using hashes here.

Provenance

The following attestation bundles were made for seine_rs-0.4.57-cp39-abi3-win_amd64.whl:

Publisher: ci.yml on sl-agentics/seine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file seine_rs-0.4.57-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for seine_rs-0.4.57-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1066e73325b6c88fa99b4633efe3d46f72277d433b0c7a57c95f1e55562f5f4f
MD5 766cc113d72a436753222f3f3b5d3e00
BLAKE2b-256 717315aff7f9ddeb0e1f8e2846c956a7ce1047586b5a84ce00c7732e0a5083c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for seine_rs-0.4.57-cp39-abi3-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on sl-agentics/seine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file seine_rs-0.4.57-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for seine_rs-0.4.57-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7a255acc619fc736f4190a4a97642b053362b356a466b029161ce864ef0b01ec
MD5 93adf40d5e50dcf49ee50d8b46e2d49e
BLAKE2b-256 8dc4576805af47b7689c26f87914c43ab2ddcb119ff839206644e9dfeb18a90f

See more details on using hashes here.

Provenance

The following attestation bundles were made for seine_rs-0.4.57-cp39-abi3-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on sl-agentics/seine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file seine_rs-0.4.57-cp39-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for seine_rs-0.4.57-cp39-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3c7da87b88129920f564a90cc71c89a3fa82761c0956c3621ff3f195ed38a24b
MD5 2c6ed4707ede237cce0b36128e7806bc
BLAKE2b-256 28b992b79edfb12e0bcfb8c52f962265e5015e25c4d80b2c4462a43d527c05c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for seine_rs-0.4.57-cp39-abi3-manylinux_2_28_x86_64.whl:

Publisher: ci.yml on sl-agentics/seine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file seine_rs-0.4.57-cp39-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for seine_rs-0.4.57-cp39-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 00801038b8f52e15b62ea284c01d8fced2148bfd9d0b96487001ed23c9a9beb2
MD5 241d0e8b4a32f627cadea557c625071e
BLAKE2b-256 4afcb237d913523469be5e9828c1969f0fd98b977e08f989f90dcd071fb73277

See more details on using hashes here.

Provenance

The following attestation bundles were made for seine_rs-0.4.57-cp39-abi3-manylinux_2_28_aarch64.whl:

Publisher: ci.yml on sl-agentics/seine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file seine_rs-0.4.57-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for seine_rs-0.4.57-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9f271fbd48062cfff18274e4b13ae718bdc241f05f13a62f41a55ed1a7e54881
MD5 9f8fa64e45047b8d9bcd9c1bf13df7e1
BLAKE2b-256 832722eb9b8ff52c802fc658dd4c5c8e80a6b7ee1ec5f06d9e6cba4031d83509

See more details on using hashes here.

Provenance

The following attestation bundles were made for seine_rs-0.4.57-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: ci.yml on sl-agentics/seine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file seine_rs-0.4.57-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for seine_rs-0.4.57-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 30234b24112543547ad9524bc2439d2f9739ba755631b8e9706368b870777bcc
MD5 3a9bde671b22e28aac6584b3fd69792e
BLAKE2b-256 b399cb34e7b2dd3691902f2f73b83ff887cf2588008011afde7e17d1b116bc0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for seine_rs-0.4.57-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: ci.yml on sl-agentics/seine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.4.57 This release

8 files

0.4.56

8 files

0.4.55

8 files

0.4.54

8 files

0.4.53

8 files

0.4.52

8 files

0.4.51

8 files

0.4.49

8 files

0.4.48

8 files

0.4.47

8 files

0.4.46

8 files

0.4.45

8 files

0.4.44

8 files

0.4.43

8 files

0.4.42

8 files

0.4.41

8 files

0.4.40

8 files

0.4.39

8 files

0.4.38

8 files

0.4.37

8 files

0.4.36

5 files

0.4.35

5 files

0.4.34

5 files

0.4.33

5 files

0.4.32

5 files

0.4.31

5 files

0.4.30

5 files

0.4.29

5 files

0.4.28

5 files

0.4.27

5 files

0.4.26

5 files

0.4.25

5 files

0.4.24

5 files

0.4.23

5 files

0.4.21

5 files

0.4.20

5 files

0.4.19

5 files

0.4.18

5 files

0.4.17

5 files

0.4.16

5 files

0.4.15

5 files

0.4.14

5 files

0.4.13

5 files

0.4.12

5 files

0.4.11

5 files

0.4.10

5 files

0.4.9

5 files

0.4.8

5 files

0.4.7

5 files

0.4.6

5 files

0.4.5

5 files

0.4.4

5 files

0.4.3

5 files

0.4.2

5 files

0.4.1

5 files

0.4.0

5 files

0.3.0

5 files

0.2.0

5 files

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