Skip to main content

License: MIT

Python Rules Engine

ZEN Engine is a cross-platform, Open-Source Business Rules Engine (BRE). It is written in Rust and provides native bindings for NodeJS, Python and Go. ZEN Engine allows to load and execute JSON Decision Model (JDM) from JSON files.

Open-Source Rules Engine

An open-source React editor is available on our JDM Editor repo.

Usage

ZEN Engine is built as embeddable BRE for your Rust, NodeJS, Python or Go applications. It parses JDM from JSON content. It is up to you to obtain the JSON content, e.g. from file system, database or service call.

Installation

pip install zen-engine

Usage

To execute a simple decision you can use the code below.

import zen

# Example filesystem content, it is up to you how you obtain content
with open("./jdm_graph.json", "r") as f:
  content = f.read()

engine = zen.ZenEngine()

decision = engine.create_decision(content)
result = decision.evaluate({"input": 15})

Loaders

For more advanced use cases where you want to load multiple decisions and utilise graphs you can build loaders.

import zen

def loader(key):
    with open("./jdm_directory/" + key, "r") as f:
        return f.read()

engine = zen.ZenEngine({"loader": loader})
result = engine.evaluate("jdm_graph1.json", {"input": 5})

When engine.evaluate is invoked it will call loader and pass a key expecting a content of the JDM decision graph. In the case above we will assume file jdm_directory/jdm_graph1.json exists.

Similar to this example you can also utilise loader to load from different places, for example from REST API, from S3, Database, etc.

Supported Platforms

List of platforms where Zen Engine is natively available:

For a complete Business Rules Management Systems (BRMS) solution:

JSON Decision Model (JDM)

GoRules JDM (JSON Decision Model) is a modeling framework designed to streamline the representation and implementation of decision models.

Understanding GoRules JDM

At its core, GoRules JDM revolves around the concept of decision models as interconnected graphs stored in JSON format. These graphs capture the intricate relationships between various decision points, conditions, and outcomes in a GoRules Zen-Engine.

Graphs are made by linking nodes with edges, which act like pathways for moving information from one node to another, usually from the left to the right.

The Input node serves as an entry for all data relevant to the context, while the Output nodes produce the result of decision-making process. The progression of data follows a path from the Input Node to the Output Node, traversing all interconnected nodes in between. As the data flows through this network, it undergoes evaluation at each node, and connections determine where the data is passed along the graph.

To see JDM Graph in action you can use Free Online Editor with built in Simulator.

There are 5 main node types in addition to a graph Input Node (Request) and Output Node (Response):

  • Decision Table Node
  • Switch Node
  • Function Node
  • Expression Node
  • Decision Node

Decision Table Node

Overview

Tables provide a structured representation of decision-making processes, allowing developers and business users to express complex rules in a clear and concise manner.

Decision Table

Structure

At the core of the Decision Table is its schema, defining the structure with inputs and outputs. Inputs encompass business-friendly expressions using the ZEN Expression Language, accommodating a range of conditions such as equality, numeric comparisons, boolean values, date time functions, array functions and more. The schema's outputs dictate the form of results generated by the Decision Table. Inputs and outputs are expressed through a user-friendly interface, often resembling a spreadsheet. This facilitates easy modification and addition of rules, enabling business users to contribute to decision logic without delving into intricate code.

Evaluation Process

Decision Tables are evaluated row by row, from top to bottom, adhering to a specified hit policy. Single row is evaluated via Inputs columns, from left to right. Each input column represents AND operator. If cell is empty that column is evaluated truthfully, independently of the value.

If a single cell within a row fails (due to error, or otherwise), the row is skipped.

HitPolicy

The hit policy determines the outcome calculation based on matching rules.

The result of the evaluation is:

  • an object if the hit policy of the decision table is first and a rule matched. The structure is defined by the output fields. Qualified field names with a dot (.) inside lead to nested objects.
  • null/undefined if no rule matched in first hit policy
  • an array of objects if the hit policy of the decision table is collect (one array item for each matching rule) or empty array if no rules match

Inputs

In the assessment of rules or rows, input columns embody the AND operator. The values typically consist of (qualified) names, such as customer.country or customer.age.

There are two types of evaluation of inputs, Unary and Expression.

Unary Evaluation

Unary evaluation is usually used when we would like to compare single fields from incoming context separately, for example customer.country and cart.total . It is activated when a column has field defined in its schema.

Example

For the input:

{
  "customer": {
    "country": "US"
  },
  "cart": {
    "total": 1500
  }
}
Decision Table Unary Test

This evaluation translates to

IF customer.country == 'US' AND cart.total > 1000 THEN {"fees": {"percent": 2}}
ELSE IF customer.country == 'US' THEN {"fees": {"flat": 30}}
ELSE IF customer.country == 'CA' OR customer.country == 'MX' THEN {"fees": {"flat": 50}}
ELSE {"fees": {"flat": 150}}

List shows basic example of the unary tests in the Input Fields:

Input entry Input Expression
"A" the field equals "A"
"A", "B" the field is either "A" or "B"
36 the numeric value equals 36
< 36 a value less than 36
> 36 a value greater than 36
[20..39] a value between 20 and 39 (inclusive)
20,39 a value either 20 or 39
<20, >39 a value either less than 20 or greater than 39
true the boolean value true
false the boolean value false
any value, even null/undefined
null the value null or undefined

Note: For the full list please visit ZEN Expression Language.

Expression Evaluation

Expression evaluation is used when we would like to create more complex evaluation logic inside single cell. It allows us to compare multiple fields from the incoming context inside same cell.

It can be used by providing an empty Selector (field) inside column configuration.

Example

For the input:

{
  "transaction": {
    "country": "US",
    "createdAt": "2023-11-20T19:00:25Z",
    "amount": 10000
  }
}
Decision Table Expression
IF time(transaction.createdAt) > time("17:00:00") AND transaction.amount > 1000 THEN {"status": "reject"}
ELSE {"status": "approve"}

Note: For the full list please visit ZEN Expression Language.

Outputs

Output columns serve as the blueprint for the data that the decision table will generate when the conditions are met during evaluation.

When a row in the decision table satisfies its specified conditions, the output columns determine the nature and structure of the information that will be returned. Each output column represents a distinct field, and the collective set of these fields forms the output or result associated with the validated row. This mechanism allows decision tables to precisely define and control the data output.

Example

Decision Table Output

And the result would be:

{
  "flatProperty": "A",
  "output": {
    "nested": {
      "property": "B"
    },
    "property": 36
  }
}

Switch Node (NEW)

The Switch node in GoRules JDM introduces a dynamic branching mechanism to decision models, enabling the graph to diverge based on conditions.

Conditions are written in a Zen Expression Language.

By incorporating the Switch node, decision models become more flexible and context-aware. This capability is particularly valuable in scenarios where diverse decision logic is required based on varying inputs. The Switch node efficiently manages branching within the graph, enhancing the overall complexity and realism of decision models in GoRules JDM, making it a pivotal component for crafting intelligent and adaptive systems.

The Switch node preserves the incoming data without modification; it forwards the entire context to the output branch(es).

Switch / Branching

HitPolicy

There are two HitPolicy options for the switch node, first and collect.

In the context of a first hit policy, the graph branches to the initial matching condition, analogous to the behavior observed in a table. Conversely, under a collect hit policy, the graph extends to all branches where conditions hold true, allowing branching to multiple paths.

Note: If there are multiple edges from the same condition, there is no guaranteed order of execution.

Available from:

  • Python 0.16.0
  • NodeJS 0.13.0
  • Rust 0.16.0
  • Go 0.1.0

Functions Node

Function nodes are JavaScript snippets that allow for quick and easy parsing, re-mapping or otherwise modifying the data using JavaScript. Inputs of the node are provided as function's arguments. Functions are executed on top of QuickJS Engine that is bundled into the ZEN Engine.

Function timeout is set to a 50ms.

const handler = (input, {dayjs, Big}) => {
    return {
        ...input,
        someField: 'hello'
    };
};

There are two built in libraries:

  • dayjs - for Date Manipulation
  • big.js - for arbitrary-precision decimal arithmetic.

Expression Node

The Expression node serves as a tool for transforming input objects into alternative objects using the Zen Expression Language. When specifying the output properties, each property requires a separate row. These rows are defined by two fields:

  • Key - qualified name of the output property
  • Value - value expressed through the Zen Expression Language

Note: Any errors within the Expression node will bring the graph to a halt.

Decision Table

Decision Node

The "Decision" node is designed to extend the capabilities of decision models. Its function is to invoke and reuse other decision models during execution.

By incorporating the "Decision" node, developers can modularize decision logic, promoting reusability and maintainability in complex systems.

Support matrix

Arch Rust NodeJS Python Go
linux-x64-gnu :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
linux-arm64-gnu :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
darwin-x64 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
darwin-arm64 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
win32-x64-msvc :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:

We do not support linux-musl currently.

Contribution

JDM standard is growing and we need to keep tight control over its development and roadmap as there are number of companies that are using GoRules Zen-Engine and GoRules BRMS. For this reason we can't accept any code contributions at this moment, apart from help with documentation and additional tests.

Metadata

Release files for zen-engine 0.50.1

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

Source distribution (sdist)

Source distribution for zen-engine 0.50.1
File Size Uploaded
zen_engine-0.50.1.tar.gz 292.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zen-engine 0.50.1
File
zen_engine-0.50.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.50.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.50.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.50.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.50.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.50.1-cp314-cp314t-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64 Details
zen_engine-0.50.1-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
zen_engine-0.50.1-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
zen_engine-0.50.1-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details
zen_engine-0.50.1-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
zen_engine-0.50.1-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
zen_engine-0.50.1-cp313-cp313t-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ ARM64 Details
zen_engine-0.50.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
zen_engine-0.50.1-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
zen_engine-0.50.1-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
zen_engine-0.50.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
zen_engine-0.50.1-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
zen_engine-0.50.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
zen_engine-0.50.1-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
zen_engine-0.50.1-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
zen_engine-0.50.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zen_engine-0.50.1-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
zen_engine-0.50.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
zen_engine-0.50.1-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
zen_engine-0.50.1-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
zen_engine-0.50.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zen_engine-0.50.1-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
zen_engine-0.50.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
zen_engine-0.50.1-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
zen_engine-0.50.1-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
zen_engine-0.50.1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
zen_engine-0.50.1-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
zen_engine-0.50.1-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
zen_engine-0.50.1-cp38-cp38-manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ x86-64 Details
zen_engine-0.50.1-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
zen_engine-0.50.1-cp37-cp37m-manylinux_2_28_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64 Details
zen_engine-0.50.1-cp37-cp37m-manylinux_2_28_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64 Details

Total release size: 193.4 MB

Release files / zen_engine-0.50.1.tar.gz

Download URL zen_engine-0.50.1.tar.gz
Size 292.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4eb73b1da4f53b61511e40c9683f25b36b2a2885f7b705633c63bc68793c0082
BLAKE2b-256 checksum
How to use checksums
4964a20212c84117964323deeaac1e90340ba21778b805e909bcac27d02d8188
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.50.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
910227f95671c10e3c3364c463704396c197ebe501ff759467dd3d6d397f76e9
BLAKE2b-256 checksum
How to use checksums
cb1d21030edbf9a9ef7423474d2c3370790536ca1a405def35514902e649c806
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.50.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
ed0590c3105275491da7621ca028934afa7299b3c3c65d13c2775e136eab7809
BLAKE2b-256 checksum
How to use checksums
7898758a81e4c8eb8ce1440f90c4891b83e0e0770e4c03f99cecaf6f5569c1bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.50.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
162ae247fd55e4c536306fc040b4fb5731eb5e31dfcdd0dac2daa9e1d235b3da
BLAKE2b-256 checksum
How to use checksums
5594f68091ed992da6490a04dba6fd9c7cae967cc049299ee9cff2f234bd292a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.50.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
dd819da6cac0e37845a73489534872657e61cd476e24089cee774e3cec5649a2
BLAKE2b-256 checksum
How to use checksums
2b3d0b5bfe1c31db25da39f4a20d922a052ac9efb797157a18410cc976ab5935
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.50.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
8280bfe3e3d3ae16ff59b884526ed7c3d78fbb2ba5e064d6957b44593baf88d2
BLAKE2b-256 checksum
How to use checksums
1c0d5e6c67c52c4822b656ed98d2b62a9be8618afbc95834a976668dc082ad1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp314-cp314t-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.50.1-cp314-cp314t-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
eb1ee657334d27d3ff9b274b31654811841f0207475545b02b0ea030d0a16640
BLAKE2b-256 checksum
How to use checksums
b5307decc09a2c4e4ee1ff7d8b1208de70c22ea6f95561d4f12a8395cdbb3292
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp314-cp314-win_amd64.whl

Download URL zen_engine-0.50.1-cp314-cp314-win_amd64.whl
Size 5.5 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
1589d32056d21b9843d2e6ceed12f5f0ba926ee6ce002ee40efe9125e0660b8a
BLAKE2b-256 checksum
How to use checksums
e82d5af9d974f293fd27aa2fa83a9cc0db5127a4480968dae97dbaaf1464030f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.50.1-cp314-cp314-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
43399538fd635113e8796d3c7ad27f030584d6fa27785482541a9beb6c8cf4d9
BLAKE2b-256 checksum
How to use checksums
76636e4cd19a7bd7c2839e700a993e59f6d94e908c7557edf6279087581d550a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp314-cp314-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.50.1-cp314-cp314-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.14 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
b996e58d3bce27bc877857e8c847d4f63528e2f8ea9d19cae0f783014dffc286
BLAKE2b-256 checksum
How to use checksums
676c5fbe8e303ec1e21628e451d9dc52a4063f09bf6e8a50a81218ae75c5f83d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp314-cp314-macosx_11_0_arm64.whl

Download URL zen_engine-0.50.1-cp314-cp314-macosx_11_0_arm64.whl
Size 4.9 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9a10401bef5b801e1f4a4c05b6f2a5e94b3ebf5e4a886e61a382d3f1ad1764bf
BLAKE2b-256 checksum
How to use checksums
688677c425d3413286aa8773968507995f6d4858bf6f5b4dd272bda9040ce4aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp314-cp314-macosx_10_12_x86_64.whl

Download URL zen_engine-0.50.1-cp314-cp314-macosx_10_12_x86_64.whl
Size 5.1 MB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
36a81ae440953647a30d95ca19df788206a169bb7a6ed83d0425b624ad34f8c0
BLAKE2b-256 checksum
How to use checksums
3c6baf0493cb3f50a875fb425f24c3e21086607d87c7c11794951d2971bd4dd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp313-cp313t-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.50.1-cp313-cp313t-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
afaafbf4691c9c807b405832d8c4f469d356cf869a30b8260b7ada9933540c8e
BLAKE2b-256 checksum
How to use checksums
2cbf0c36f880d74d7660e3bee7a502d37e56dab9bf0808ca43b68afb5a1662c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp313-cp313-win_amd64.whl

Download URL zen_engine-0.50.1-cp313-cp313-win_amd64.whl
Size 5.5 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
018cdb29f7353086d6134d5a41e867fb325d43b8a211c269b83f26958aa54390
BLAKE2b-256 checksum
How to use checksums
2bab7a2ad4d4bf2e430d14174d28d4660908efc67a0609a39edb29a3599e6781
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.50.1-cp313-cp313-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7c18eee551237f8d2df6efe2be149b2abc225d89ae837848373174ea9ced67a9
BLAKE2b-256 checksum
How to use checksums
eac477524c6d18d28d8cb58b3cf37819ff659eddfe212d408f46362af21e78df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.50.1-cp313-cp313-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
c44ead3cf886ee0fa4ddcbe6f20dd369b763e6e27c1721854fdd0a8230ae5b95
BLAKE2b-256 checksum
How to use checksums
9ffde2ccd425a36138f4a0fb9bd313675c25bdcc0abe2216b18771e4b2bbae7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL zen_engine-0.50.1-cp313-cp313-macosx_11_0_arm64.whl
Size 4.9 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
90d1f641d4074aff7c5b3a1724a723ff5bbaf187ff9b81aab3b85e7ef93ab556
BLAKE2b-256 checksum
How to use checksums
3fce271b269b4f14d7e6fbb81305f8db5661efea7ab5549e3eec4ad934361510
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp313-cp313-macosx_10_12_x86_64.whl

Download URL zen_engine-0.50.1-cp313-cp313-macosx_10_12_x86_64.whl
Size 5.1 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5cef3e930b3e03173ab797d98aedbfe1d2faa6f8ef5b053f2bac661e7026da13
BLAKE2b-256 checksum
How to use checksums
4b82ecf198b644c705c0ffa2bc95129df894370297ba61927ad8bd6a311a96c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp312-cp312-win_amd64.whl

Download URL zen_engine-0.50.1-cp312-cp312-win_amd64.whl
Size 5.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
cdc98c2e499a710b3d1ec13dfcc99d76bf04c3c00ec1aefd5adbc1d75aaae678
BLAKE2b-256 checksum
How to use checksums
65bd82d8a4c694229db3edef6e6fe86fb04ee2de0b2dd00acec5fe97ba0f68fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.50.1-cp312-cp312-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
cf9d623c524b4b75584dff843d0fadc311affe9f5948b8d119154fc2223dfbc9
BLAKE2b-256 checksum
How to use checksums
8300c368ff5ed22828eb983719d6433caf0604a1ae3b24b52f27112bfa00a05f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.50.1-cp312-cp312-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
88e2af6e19bd4ab787e1677e1ed6ee5d995b57e95a4dc867597c0c2967961d35
BLAKE2b-256 checksum
How to use checksums
ddc15ade6ca5c4fabafa3777a3beac0881b0ed907ff77be49a0b8f21a1d12e9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL zen_engine-0.50.1-cp312-cp312-macosx_11_0_arm64.whl
Size 4.9 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8e12f6dd19219d4d1717ae4e6478c464d827e315736cebbf4b1dc75346520bc4
BLAKE2b-256 checksum
How to use checksums
22a30f475c6deef1fc99f7b5c72d4aadde277fbc7d9027a82888f08b037e7b8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp312-cp312-macosx_10_12_x86_64.whl

Download URL zen_engine-0.50.1-cp312-cp312-macosx_10_12_x86_64.whl
Size 5.1 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
b87fee2a91074ef34bb335ed856ff6883659484eb3bfbf113d87d9884596c68f
BLAKE2b-256 checksum
How to use checksums
cbd2fb648d485fb21e4e21854232b5edbfc876bd895d9059696b3aafc982a54a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp311-cp311-win_amd64.whl

Download URL zen_engine-0.50.1-cp311-cp311-win_amd64.whl
Size 5.5 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
16cec3997158ffa18e0747050d499a60857ccf7568a3d91e589b308e7e79b4a8
BLAKE2b-256 checksum
How to use checksums
d2cc890efa1736c5d4c2b6bdb172306f43b83e077035f06e85c34458a4898945
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.50.1-cp311-cp311-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
eb165dabb790139e61d61a4b8d485867d4fc1b26b678a5e8a6e337da527ff5bb
BLAKE2b-256 checksum
How to use checksums
17832e9a843e87b5456aa849a96ae87296bde45e217e4cab1c29a1f626c19104
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.50.1-cp311-cp311-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
586a016be4f121958ade51d60ce61ed127ef49222b05dfe35784c38c36d5a192
BLAKE2b-256 checksum
How to use checksums
ee14617eca3843d243f0fa1bf35266d49550c6f842a38bfa3265b86cd22d742b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL zen_engine-0.50.1-cp311-cp311-macosx_11_0_arm64.whl
Size 4.9 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d4719aef5f1fbe35eca29e4f9535d05d52ab7d911084a21498c523a62af189af
BLAKE2b-256 checksum
How to use checksums
2c526834a2be4d7c7c1407d9f1295202b73af260083b9afaf0b57277359b3d96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp311-cp311-macosx_10_12_x86_64.whl

Download URL zen_engine-0.50.1-cp311-cp311-macosx_10_12_x86_64.whl
Size 5.1 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
052eaaba240e3b24975150a0546e18170099c7ba6c9b70b164842deba2c42f1f
BLAKE2b-256 checksum
How to use checksums
4becce195e0233dc125497a069566461268a38fb7815a6a49e6cad8f017e3624
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp310-cp310-win_amd64.whl

Download URL zen_engine-0.50.1-cp310-cp310-win_amd64.whl
Size 5.5 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
db9162b6e4e94f0ccd08b4b9dcb35830aed21940af632c932e1b459506706fe0
BLAKE2b-256 checksum
How to use checksums
99194b26e1cfdc448edca0ee623b633e064b16295b82f44f8f4ebde3d0d82393
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.50.1-cp310-cp310-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a264cd941894b861f806e79c596ef517e79a361da5b8fd92bf71ccf8cb7f23c9
BLAKE2b-256 checksum
How to use checksums
6a2ebc9167f11045fefc0a3a81dee99b39e36bb7c1632ee272e6a59654d171eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.50.1-cp310-cp310-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ab332d909cf831ce7e9a2327788912830d639b65eba94548edec54457cc4526f
BLAKE2b-256 checksum
How to use checksums
de33f69d122be35d896f9093acc0884c5a2e73984e274ddf87ba729445ecaef2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp39-cp39-win_amd64.whl

Download URL zen_engine-0.50.1-cp39-cp39-win_amd64.whl
Size 5.5 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
d31d4c4506ccbeb38fa7ff8925acd7aab44bb3d8e4d1c547631f7d0799838c5a
BLAKE2b-256 checksum
How to use checksums
abaf37a110aa93ad7116b6a1c08e21c3090b413fcac3b99e4ab7510d7756cea5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp39-cp39-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.50.1-cp39-cp39-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a681d5bbac604e77322a7ac9411784bbfe31f40c4172314f76d1e63f2c04f2f5
BLAKE2b-256 checksum
How to use checksums
263ccc01125e6fc81178682dcf3fe76c5861d6edde60a79380fdbffc6e16b10f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp39-cp39-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.50.1-cp39-cp39-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
acad440ffc7721f312e8e25efabe74ae55c531f06fb4ab6e592251ee7a467b3c
BLAKE2b-256 checksum
How to use checksums
aa2f2ffbb853a658eaf3d1c8a543a2bf3af09e17eda7920e5e75688d2c702a9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp38-cp38-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.50.1-cp38-cp38-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5c75a03b3792635c4cfe057bde1ba6859c1f9c2cf8a1e90991460d29e97f64e9
BLAKE2b-256 checksum
How to use checksums
7f146593a0d9c7eb83795157eafc77eebef4883166bd0d4aef3f904f34900585
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp38-cp38-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.50.1-cp38-cp38-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
db39325fedc67bb060adc6f0368919537cb3496900c2fd1fd7878e62c5f8090b
BLAKE2b-256 checksum
How to use checksums
266a69e5ef138185d04b8b0367c58de103a1ad5433e6935d9da5eec298d8977c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp37-cp37m-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.50.1-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7dffddc58c02ff32a635cd660188beae7d70d88d387ed1e299c801966fd5ab51
BLAKE2b-256 checksum
How to use checksums
925c0dc5e66d8ec3f6fe266c2b845311eca1cf9bd7707990203adf91ffb2ff5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.1-cp37-cp37m-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.50.1-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
052b990481fd5b9e86f32cb3a6dedd884d2edc3028454a1f1cfd3432a671bee8
BLAKE2b-256 checksum
How to use checksums
51510bbcc964fbeb13a168e958a6e48ec8703c8ec52a0db73609da994ac93ec1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release history Release notifications | RSS feed

2.1.2

6 release files

2.1.1

6 release files

2.1.0

6 release files

2.0.2

6 release files

2.0.1

6 release files

2.0.0

6 release files

This release

0.50.1 This release

38 release 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