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.35.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.35.1
File Size Uploaded
zen_engine-0.35.1.tar.gz 173.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zen-engine 0.35.1
File
zen_engine-0.35.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.35.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.35.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.35.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.35.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.35.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.35.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.35.1-cp312-none-win_amd64.whl CPython 3.12 none Windows x86-64 Details
zen_engine-0.35.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.35.1-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
zen_engine-0.35.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zen_engine-0.35.1-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
zen_engine-0.35.1-cp311-none-win_amd64.whl CPython 3.11 none Windows x86-64 Details
zen_engine-0.35.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.35.1-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
zen_engine-0.35.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zen_engine-0.35.1-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
zen_engine-0.35.1-cp310-none-win_amd64.whl CPython 3.10 none Windows x86-64 Details
zen_engine-0.35.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.35.1-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
zen_engine-0.35.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
zen_engine-0.35.1-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details
zen_engine-0.35.1-cp39-none-win_amd64.whl CPython 3.9 none Windows x86-64 Details
zen_engine-0.35.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.35.1-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
zen_engine-0.35.1-cp38-none-win_amd64.whl CPython 3.8 none Windows x86-64 Details
zen_engine-0.35.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.35.1-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
zen_engine-0.35.1-cp37-none-win_amd64.whl CPython 3.7 none Windows x86-64 Details
zen_engine-0.35.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.35.1-cp37-cp37m-manylinux_2_28_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64 Details

Total release size: 95.2 MB

Release files / zen_engine-0.35.1.tar.gz

Download URL zen_engine-0.35.1.tar.gz
Size 173.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d7773aba1c41684317cab26b11ed007423c8e59655477a3e59c2b577fbc09cb1
BLAKE2b-256 checksum
How to use checksums
a1cfb56a7889ea60ff473aa3a192cddf6a7f6b99b5c24b4e4dc85adfdc70dffd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
708bd8109e0e0e5fbdbfbebc2fb3748fb2618e32b6607549d1b9e07f57b29e66
BLAKE2b-256 checksum
How to use checksums
973d1b79d12184965bc3976ec8c2a2dbb53c35f40dd7fa8bd857ff88fe2cadf5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
08403adb58094c0c71670804e7eb875824851daae7fd701186f9eba9f26c73df
BLAKE2b-256 checksum
How to use checksums
c479c2cbeafcd7e90590ac65e57476877f6ae2db04fccfe737c0a1359d321b0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
cdc2662183aaa637b39d65da993b87ae7b6299243fc9b83f8d4cb3c83052fbd6
BLAKE2b-256 checksum
How to use checksums
646609287add6506a1e6f584404c36e091f7347240a64475b11beb34555013bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
4a005eb191117b6153e163cac6d5eb08c6b29aae61dcc8d8e3ff5461ad64b4f5
BLAKE2b-256 checksum
How to use checksums
2ad48e69b781e2a71f1a789003646d5c6fb4499fff649d001c5cec1e0e4e4aa5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
5034e99b67a2b41f9158c096f066c01f6a1aefaff2b15984c5037c73d6f25e0f
BLAKE2b-256 checksum
How to use checksums
dd7a4e63dfd153853e308a452a24e32610924c277cc8d482e7ad2a4c9b9fee00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
b68eee64e47664c3fc519cc7344d7f84e004a741f18df627c0545529befd61eb
BLAKE2b-256 checksum
How to use checksums
bd9af5990aab7d754c40a96ea20be39700fe400a77ab01780f1f87f8b9e82a1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
24ef966f382c12b02b944818b8f15b7360331a64fefbc322a51c0fb7b2407086
BLAKE2b-256 checksum
How to use checksums
755e8555e1692e6dfd504ef99f223912a338a0cb4f14ae48d1d2b2154f337f72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

Download URL zen_engine-0.35.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
6003f8e9b1bc9df709efb38a55c5f58f0dff753ce1217351ba33a9f7c95a5577
BLAKE2b-256 checksum
How to use checksums
ef204c9d89d70c80d3adef871893a5cd94be484a7d961a96e7d26e81e98e73ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
58ec79f38670a5b1a51595735e6c305faafdf1bdd5f3e857988e0ffe9d7769e3
BLAKE2b-256 checksum
How to use checksums
cde7cc497f491bd75a2cf8b6c04365bcf1590a1beb4caab32d169aab3ef526c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
103c8d2ece33beab5fa331eedd2e408757ee17c6cba2eb276d9ef84a68c9c6d4
BLAKE2b-256 checksum
How to use checksums
4af592c755bb390c0ac3816eda2603dd6a4602f030440e973efde57db3c154d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
549c75dcf8c1be79731cfe5aa2b3b6754884842e05f344c77c8bb425cd88b9df
BLAKE2b-256 checksum
How to use checksums
b9b299f697b3d78d73e185ba4550d26cd58be97560230c125fc194ba62d8aa94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.1-cp311-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
c452cd95f4328810d00101fcf550f169cb2385e37ee4e6ff36b50a2477d284fb
BLAKE2b-256 checksum
How to use checksums
956ed43f585e7b817e02f8c8929167ec6b11922b7d9f7154d5497cddd8e3a648
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
4681085e955c6a8c8925a8a54a3388c2e84a0eb60302001d292afbf4cf84ad2e
BLAKE2b-256 checksum
How to use checksums
733b0af8e27ada161a2b4643b7013ebee366b9866f5c7d39c4402cbe3ecca4f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
6f1a0b051654c530420f292ee2632b1dd1c5c8e5715d0be7c4d9d6fc3bb9b8f3
BLAKE2b-256 checksum
How to use checksums
4b639f45728d872b64f30bca1fdda0f82df0fb5d7dadc10ca43b1b2b59aacca7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
95ca168a23d1ae496bd6d5dafc28bf7db869991f0166309202dbe1fa2f061e49
BLAKE2b-256 checksum
How to use checksums
4b4325186eaac6e30a079c3b05a2d0c734c649ab46ec9d5f5b4f5673a94d3009
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
4f63f261e716c0ab85dee3847e1740709ac1e5d81cd7ed750bfd279065163c00
BLAKE2b-256 checksum
How to use checksums
0ff7f2f6ffebc8ac916c9be5e43c62a9745714a54d1b8daa1d0b6d794829ca5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

Download URL zen_engine-0.35.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
bebbeebf0145c7fcd6c2ca88ed1b38a08f2a2f754fc56f6ed72ed09f5f610db5
BLAKE2b-256 checksum
How to use checksums
aec991c60e9c16f4c2b449a10285b72b5a86885711d1264ab994bb778d3b53e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
d38dd4f3e41551b7acfe46c18bc338cb8860a73fade166878ec311d759d23e8d
BLAKE2b-256 checksum
How to use checksums
0a43f3eaeefe898630ef74a3b91369ddebc02bb7d6fe4a0e2720907c73aeb4cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
b5f3b96ad045679eddc7d9d5d39175f7a947e667605cbeb437e651bd35311d74
BLAKE2b-256 checksum
How to use checksums
40f4f830e64f2937d95f172e4ab38c9dc119657afba8c736533c97685a764bdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
49a0c50cb615b24070ece9ab060a2a53ad96eb69fa47d139203af978960d1951
BLAKE2b-256 checksum
How to use checksums
b6bad1caf3c8ff4f76708dae95783c43a41d22f09ad0628f0a60c10d05a64c3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

Download URL zen_engine-0.35.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
f6c328f1f5eba9ddbefdb27bd9ff7fa16e44ef8e77ea1b53edc09b5be7a12d68
BLAKE2b-256 checksum
How to use checksums
c76422f87f2eb7072208da9297258f51ca63dd9864867e319b73a82734534e40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
4a7f4e02948a96574c7a363f6d53baa8c8531d98a399aaa3011919f88063e6b9
BLAKE2b-256 checksum
How to use checksums
595f5586dec490bc35b8ad077bcb41da2436326fbdab481fa550235c93152d4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

Download URL zen_engine-0.35.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
2492da8406c5c8f1dcb22ac8f7d68409bf63bb87370f01a4a80c057d139e098c
BLAKE2b-256 checksum
How to use checksums
5114a723755191c882ede80349b5ee5efe7d1c636092e5c4faab9df46a644b94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
91db9a3da9362fcf30c66dc5f9ced63f371f196ffcebf0542cb64578b9e5b199
BLAKE2b-256 checksum
How to use checksums
008f39e41b43ba59c7e438af93f70fa5224fb58ffb22ff09f6d5ffd4f3ebc517
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.1-cp37-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
fdcac841647075feeacdc0b2ac0588eada25d46df9946543bf9ceb0f8f4da385
BLAKE2b-256 checksum
How to use checksums
3ee52b6b2bfe186bae73491ac38f76d10e7a4bebd5fa0846e63c57074c42d04d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
3e5d809d067a45cfb23d04bbfc73db00fd9761a83c05673b36499f103ee2e88f
BLAKE2b-256 checksum
How to use checksums
20a2cc06ed8a843e4b868874fd8fec2924ad569841e180a6ce492f171fe1fb3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.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
44f5b93c82a37870941b2731e06ea47d368aee55a630c40db1c99955a18a6567
BLAKE2b-256 checksum
How to use checksums
8f7e9e2646a63a9d46df916527910f628c9051bd0090c216ae3a8dcb4fab7c7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

Release history Release notifications | RSS feed

2.1.3

6 release files

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

32 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