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.24.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.24.1
File Size Uploaded
zen_engine-0.24.1.tar.gz 157.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zen-engine 0.24.1
File
zen_engine-0.24.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.24.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.24.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.24.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl PyPy 3.8 PyPy 3.8 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.24.1-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl PyPy 3.8 PyPy 3.8 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.24.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.24.1-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.24.1-cp312-none-win_amd64.whl CPython 3.12 none Windows x86-64 Details
zen_engine-0.24.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.24.1-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
zen_engine-0.24.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zen_engine-0.24.1-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
zen_engine-0.24.1-cp311-none-win_amd64.whl CPython 3.11 none Windows x86-64 Details
zen_engine-0.24.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.24.1-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
zen_engine-0.24.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zen_engine-0.24.1-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
zen_engine-0.24.1-cp310-none-win_amd64.whl CPython 3.10 none Windows x86-64 Details
zen_engine-0.24.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.24.1-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
zen_engine-0.24.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
zen_engine-0.24.1-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details
zen_engine-0.24.1-cp39-none-win_amd64.whl CPython 3.9 none Windows x86-64 Details
zen_engine-0.24.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.24.1-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
zen_engine-0.24.1-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
zen_engine-0.24.1-cp39-cp39-macosx_10_12_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.12+ x86-64 Details
zen_engine-0.24.1-cp38-none-win_amd64.whl CPython 3.8 none Windows x86-64 Details
zen_engine-0.24.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.24.1-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
zen_engine-0.24.1-cp37-none-win_amd64.whl CPython 3.7 none Windows x86-64 Details
zen_engine-0.24.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.24.1-cp37-cp37m-manylinux_2_28_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64 Details

Total release size: 101.9 MB

Release files / zen_engine-0.24.1.tar.gz

Download URL zen_engine-0.24.1.tar.gz
Size 157.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4a4e903053be6a02f296d3be2c05b56805a4f6488e2dcb8853d6eb65079450b6
BLAKE2b-256 checksum
How to use checksums
bdf3b6672030b2c325bea8b44f0faf5951f85f09e31097eddf746fbdec917ed8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
3c7119355b6624c84341a285698958e075f6bea715cb5dbc6c741f39f2fbcc15
BLAKE2b-256 checksum
How to use checksums
d8b9a939ff8c3da09ab563b6febe77986ce07033b50b0f83ec5d77b6cc72f932
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
34411b2451ab451bf22dec45eac558d6bdfddcc32a2417e5dc7b61427adfb128
BLAKE2b-256 checksum
How to use checksums
4e561317a6a9049808daa4b5837798e4647184b6e4fa8a5e09becc892128deb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
d9c7c0692c4b23d20c6e2f90083c20f962f7fab311ae4df922d7a43733f140b9
BLAKE2b-256 checksum
How to use checksums
4e482cc44e26f51dfc4c1dc2756462a6cb018ba712dae722c331066e9b33ec28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

Release files / zen_engine-0.24.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.24.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
a1095e2c12bc286cde6ea3e2306ddc16d0ceaf92f2460b0212a180348cfc87d3
BLAKE2b-256 checksum
How to use checksums
ca97d3ef411dc1e77c743f03d6b7acce881d332c30d796c395eda19f9a24a51c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

Release files / zen_engine-0.24.1-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.24.1-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
c178343d2a1c09ee4aca97196a3dff1a4a518639901897f0833149dafde27190
BLAKE2b-256 checksum
How to use checksums
22e5697e0656b0143a8c521966d0395a871a87d730cc09a387941d3a538df3cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

Release files / zen_engine-0.24.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.24.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
8376a85c68abc94c66fcb60c16d699523985268d40f646f0c69b677a9f731dd4
BLAKE2b-256 checksum
How to use checksums
276c773059e9a8fece89b0f5b45a136a9350304199a1550fb1a3ffdd5a37c296
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

Release files / zen_engine-0.24.1-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.24.1-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
63c2d764be6ebcb32aa737f0a8d36229ff43e47755f0d5ff0dffaf2c09e0ce2d
BLAKE2b-256 checksum
How to use checksums
9c1905afb13b3333ececdecefe79e2b8f155f561195ee138cd11b29209fa6fe2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

Release files / zen_engine-0.24.1-cp312-none-win_amd64.whl

Download URL zen_engine-0.24.1-cp312-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
eb70a9a23c8f7c201cbc20812e98f8fbd9e2d7fdd41a634354ad3edaae377a32
BLAKE2b-256 checksum
How to use checksums
21d6cefb952c5b59eecf7b68e537c60bc380a20f7b451d314dbe2a89a67929fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-cp312-cp312-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1280f50ad37ffe1c5dc3f3dd0db9d1e54ffae803627dc2a13e80c687f1dd3ed0
BLAKE2b-256 checksum
How to use checksums
1a12ccf9ae5129889118b11f69ac42063e90d75ef6e49f8f9b223cad54751863
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-cp312-cp312-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8469e52de9c092f32b99dcbe12516d55ca954e684db67d3e658c8097baa091c2
BLAKE2b-256 checksum
How to use checksums
d438e76df67185b101118fcf7cbf3439690083ff45ec84f3a983ad18bf88f6d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-cp312-cp312-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7226b51bf75013cabc0c3f438b2556c9d067fb0ccbaebb4c87daa7ef982553c0
BLAKE2b-256 checksum
How to use checksums
7d7435eb067a4cad48ed1498d93efc0ef1b7993490ecccc3f73bb397c2cad0bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-cp312-cp312-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
eb86a40c3cf8c7944a3b859227b2de75a355525c4fa1484c7eb5df6e515bc541
BLAKE2b-256 checksum
How to use checksums
4958383b8025feded67e12478171d80b4ab2782b2765963382d36e81693f2160
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

Release files / zen_engine-0.24.1-cp311-none-win_amd64.whl

Download URL zen_engine-0.24.1-cp311-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
78ed178aa064fdbbff33ce526bcb72dae1389db4e20de43c1cec20f7a9c2f284
BLAKE2b-256 checksum
How to use checksums
0f18aed43aa932e4912c27ab1374f834385ab610f15138fed642e53f897b8d42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-cp311-cp311-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ed439ca7112e38a0604f14e0b521c4a696d028c982b6874ce6de9c75c7228eeb
BLAKE2b-256 checksum
How to use checksums
e47d6e671c16d2f775264a130caa8c18063e100416b7892dbf4eac56bd730bcc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-cp311-cp311-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1abc61055188800f0066dc0947560847392d73571a1775194c4f04f795efe1e1
BLAKE2b-256 checksum
How to use checksums
3f5e958c1b4a690e39ef970fc1276a1a51947a0ac74c71924249e7caf6774492
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.24.1-cp311-cp311-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7fe4ad125093c9bd028a1bfe7db8f7aab3fd0153a8f4cb956b14ce1763ec3ec5
BLAKE2b-256 checksum
How to use checksums
17e5618d32ccef0aa8d106de97e478724d119170b0f71236f9b23230168dad81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

Release files / zen_engine-0.24.1-cp310-none-win_amd64.whl

Download URL zen_engine-0.24.1-cp310-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
dd312ee0d30b81574b99a6a19d73bea954fdc6711fa98c9850531a0312eb75ab
BLAKE2b-256 checksum
How to use checksums
a8e10c2bba24e2e4e61b5c4bab9e9962891452530fa17470df9db21beeb3e887
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-cp310-cp310-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2baf5eaa7be1a65990228d18e07423c4ff3db9b210d8d388a1cb1f8be023ba53
BLAKE2b-256 checksum
How to use checksums
453dbd6c21420dddd08f5b6aef3b465caf5eaa8b9205ae946bd375a884f54499
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-cp310-cp310-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
13b320fcc0048ece1f635477f91097d04394764c27ae0ac5f821226896837398
BLAKE2b-256 checksum
How to use checksums
b291e3328a2a0a4f5a158dbfb8299ebf21719f614c7c707ec0edbb4a141607cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

Release files / zen_engine-0.24.1-cp310-cp310-macosx_11_0_arm64.whl

Download URL zen_engine-0.24.1-cp310-cp310-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
864945e6e83667836cf4958173987d4808604b131d582fcb29d03440efc8fffd
BLAKE2b-256 checksum
How to use checksums
3c57f46f2e866209d579a737b655a2c9bd86d533a367d8d8efd4c69f78b8d5a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

Release files / zen_engine-0.24.1-cp310-cp310-macosx_10_12_x86_64.whl

Download URL zen_engine-0.24.1-cp310-cp310-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
6cc5d211820d3c805dc14f1059619b5889d353c6d12cbf9016ebc18aaeea267d
BLAKE2b-256 checksum
How to use checksums
a5476be548ce806882c042a7dd1661d02d91389a47570154f1aed40dd5749f1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

Release files / zen_engine-0.24.1-cp39-none-win_amd64.whl

Download URL zen_engine-0.24.1-cp39-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
e20fde94503b72b17ff349652e98a7e51dc4a43ace9d1dd4610adfa16f80d817
BLAKE2b-256 checksum
How to use checksums
74b01cb790bd0e1ad178d0a9048579a1731905a44e52e230542968c2b913a49a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-cp39-cp39-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
fad549e6cb3f2da9ee158536d394e06adb34d5e380b64d4cabecede719b66749
BLAKE2b-256 checksum
How to use checksums
612fec20a19132bc75dcc42f879dbccfba13255edf827ce8e3fb39189dd218e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-cp39-cp39-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
003b1e7705a0481f9d4b2ddd32d0880a90cc242a29e9004cedc5f4c84738abab
BLAKE2b-256 checksum
How to use checksums
fb50d2177494380dea50fc8170ee7659b06ea05f12188beed14fc58555244ed3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

Release files / zen_engine-0.24.1-cp39-cp39-macosx_11_0_arm64.whl

Download URL zen_engine-0.24.1-cp39-cp39-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c388d1585a25d948cc51dca2b18ddbc91b298824f190ea62b3a57a7e811de7ed
BLAKE2b-256 checksum
How to use checksums
796fa8c758bc98c739af38cea3afc6ea88cbd7b259c3cc9f3d2ead4d4c397125
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

Release files / zen_engine-0.24.1-cp39-cp39-macosx_10_12_x86_64.whl

Download URL zen_engine-0.24.1-cp39-cp39-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.9 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
26ece9314d76cb00c1b5f75dca8985a2e027bab9957d70faac5729700c4a093b
BLAKE2b-256 checksum
How to use checksums
7f9e438c684c88c294a900e319621abaf8dca7cb3387efd297aa39f1224e3867
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

Release files / zen_engine-0.24.1-cp38-none-win_amd64.whl

Download URL zen_engine-0.24.1-cp38-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
d9950969ec76ff0810a8ec98fc8a1ce79ce0297681b55b130e44a223c9a63f60
BLAKE2b-256 checksum
How to use checksums
79f21cd9568ae8a488df3622184cd39ae62fc1d2df9f1318f0721c21d5d9ab33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-cp38-cp38-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4cd70a51d5ef0ae255dd5ef4ef77d0a15feaace29e29ba461c0a63817f90d5ec
BLAKE2b-256 checksum
How to use checksums
e327b3aa8551f4cffd51fd759af55890b68d2f38fe76d672ce7190c9419eee3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-cp38-cp38-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
cf063d0ffe828de0aa6b448d51ff3203c3531723469fb511bf9cfb7408582e1e
BLAKE2b-256 checksum
How to use checksums
d82688795bbfe77688d2c021be0233e944928d6db158cb353ef764b8a850bf25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

Release files / zen_engine-0.24.1-cp37-none-win_amd64.whl

Download URL zen_engine-0.24.1-cp37-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
0ce8eb4f02ba36d4c5425c33c1b58f66a6fbabfe08bae5a8181f1a3c865c4c92
BLAKE2b-256 checksum
How to use checksums
8f19c8fedda32a9bc22ed0d282f7cda0719364719ec69e8dd8cba8114f5c096c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2b580c6694ba03ee7d42b62f1aa8247f1bf128d473c590a1ae89561a2f7886b3
BLAKE2b-256 checksum
How to use checksums
e13e541f2e4c08026c3c28c52be69e4c7811b765adf4924cb8650d34186bbf20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.1-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
06dafabb48855ddee0a3d9d1e684ac2753317652544a1ef5d4d6597d9a412822
BLAKE2b-256 checksum
How to use checksums
b91bd212316ee42cb38a968b5d7df8662b777db7974f2a20a0ecc4acfff2fe4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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.24.1 This release

34 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