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.28.0

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.28.0
File Size Uploaded
zen_engine-0.28.0.tar.gz 170.5 kB Details

Built distributions (wheels)

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

Total release size: 99.3 MB

Release files / zen_engine-0.28.0.tar.gz

Download URL zen_engine-0.28.0.tar.gz
Size 170.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a760671e67a01a306eacab54b1268594763f7cf5d80cec05d45c67a581d88cfd
BLAKE2b-256 checksum
How to use checksums
fcd16acd54e280dfc024b87076c782e4b84ddf67ec5a694169a7c6312ed3c416
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

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

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

Download URL zen_engine-0.28.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
0a3d48c84b1d300d993c464b2d423c9b555ec64f887115f247bcfa19705458e1
BLAKE2b-256 checksum
How to use checksums
d87fc9a64058516a0276fbf9ab75a4de7ca156802d01597c404bf8fe8dbd073f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
3b5e647e45a7b30cba57e6cf7613dda5490956c3bbe203878eb26ab978f3280f
BLAKE2b-256 checksum
How to use checksums
023700742752041cadec33223d4b40d23753b7b8d367247297542ac6d4e4e981
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
4fc435bd9657e28e05cecb7aac3a0475010bb7bc6834c844aa6808009725dfb5
BLAKE2b-256 checksum
How to use checksums
889fce718e19345986970ae508e493fbf25e61af8e28b0f1bc954f73c6344a5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
ff0fbbbe8d3068fac8e147344f4151ee65f47b99f43f7ce3f3f08b810facfad5
BLAKE2b-256 checksum
How to use checksums
df899ea1f1004ab0ce17975626d7cac6444d08daf829ddd0c3ee0dd3e6763ddb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
34e419bcbff8cd9e0b51e5dc26addd9525ea7c9f9b20288b333f667258d3c89e
BLAKE2b-256 checksum
How to use checksums
537420193383d60347165114f9f456dddce394f4bbda6ccfadb78c1af26db6f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
75f288cabaea67ae826db966d2a0c380b05059a3a9ce2e5d1a61035b2517e474
BLAKE2b-256 checksum
How to use checksums
7a4b2bc9413111012e6d6eb3f1eaeb9017296bb53bc21e1ceba31b88b2d01cc9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp312-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
78c55ea1fb7e7ee72bdffd21c84d04542dd7e012806b6006acf8de1c6d6933ef
BLAKE2b-256 checksum
How to use checksums
50e2c5107b6b07e429c038613d9b7a4eaf59d78ec711c66f8df4079621c0efc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3f82793050dbb230cab7788a5b7fb1d1993ad08e75a8ecc00baee2dc0c9098f9
BLAKE2b-256 checksum
How to use checksums
44db82b99871c9a69cd51d629e19352f1264d2d60def7d6ae63a4cb4a2f53b25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3534412152874b6bcacff1fdf1d46593edfc6e21ead937f132fb6ca5b6ed2098
BLAKE2b-256 checksum
How to use checksums
96b1c43b6ed57ab1f277d57de2511195433468e574cdae7a5ca23d6ec3109d19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-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
4be80cd6e3858c8a1e91526f54659f12a568c0f044f42919e51468b3091cdf66
BLAKE2b-256 checksum
How to use checksums
06623887e92b03db127bd7d54632110ac53b463f587659bdaf5551270d87d261
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-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
2726a6ef1df15d9bb8b0484ed29d6488819d7f40ed6664ca599e80b44d9d2189
BLAKE2b-256 checksum
How to use checksums
8aa97d6bd88bbdfc968371c3d015c876d89563403b2040827ff6d95c03d7f79b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp311-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
8d376e6978dd80dc5c78c879288d2a1660b26e5be81d7e4950fe60fa8730c68f
BLAKE2b-256 checksum
How to use checksums
a9f1c3f0607053541fc7d12ca671f4f6e5f86dac592af5837d455930bc574494
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
85b0273ffdeb9c6906c996168c7b8fa25596c7d8ad0b8760483faf0aebb08d4d
BLAKE2b-256 checksum
How to use checksums
498e975b7f83d4f240969697d8a21002833bd3f7386d1657a5ca773155dfc9e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
befa78574cc804015e285fde28e28f6c57fcc69d4901ec4a4b4bb47bacaa8c89
BLAKE2b-256 checksum
How to use checksums
3eb6020fcd074ccaf5e94e4ab130806558e0c02d4cc7955f40332f383963b487
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-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
16869e5bedcab63cdbc38f64fa4dbf9eead57487dec550bbf32d0c58a5ecc23b
BLAKE2b-256 checksum
How to use checksums
f6dfcf2b49d6a6d877c3742e549dceab4e857cbd191c9d33cbd59f334b972124
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-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
7ce37007108d123b4a5dac90f5bd2d1b03fce6d94d0eff12a0609af0aec844c3
BLAKE2b-256 checksum
How to use checksums
aa6d5711874da4b01978c9f78cf92b838db2d805b95c85ec1609219d711a1733
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp310-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
a2e57c42ebea38edb4d9148ac28cd8937e220e4f4042bfe4b0f74eaae4d3ee49
BLAKE2b-256 checksum
How to use checksums
84d6a0a63c91521e3e31a8185a4e4906373794f2724a948f9413c167bc6402ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2c60b147c71ba5f93cb1c45ae75d91ba54981f435cf27465dbb26de89012031f
BLAKE2b-256 checksum
How to use checksums
c698e17c812d79ebdc70ce18f5278bd84434709b9cfa9373a19b53c3786da8c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2a5c0eb7f7a95fb19dfbfd80daf5b957568d7a983d4aa6c07d7c0158b48da381
BLAKE2b-256 checksum
How to use checksums
b04c8df1e1cb22f4572a0eb808e83bd87d721f9cc61824ace3201349fab18288
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-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
4e56fd77f55834d695808d024d97b53dba25fe5368afeab489d29485be1d3a52
BLAKE2b-256 checksum
How to use checksums
3577431f299e8454b78829fa0616fafd17991f3e76c147a3b1f24e2753bd1a23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-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
4bc419989976f65b2cf0af48bf5efc0ce579830fccebad7ef2925db2f04f1168
BLAKE2b-256 checksum
How to use checksums
2d1582a250c1117314fedb70aecb39743786d0e486783f1f12dc7f6a801915a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp39-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
d75edd70285862a35cdbc24e5b6bfeb38546b061b8fdad3e6afc152d271bf8e1
BLAKE2b-256 checksum
How to use checksums
4540466fd929cb34df84c69601e009e2dbc94ea504c94b0b595c6a3660653e5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6d2806ef45f17fbcd0368c8bef13ca7ad59d2085566f8b8f421ede0819c16ae3
BLAKE2b-256 checksum
How to use checksums
5f92ec0f6e1830ff1de65cabf7d5ec7217a6710da5510f9191cd5a151b25cdee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
c5dd79ee504c48c217a505d13e1a54002ac6f9f62bb2a80507cd41123897cfe9
BLAKE2b-256 checksum
How to use checksums
917b5023d8ba8999798891f87baeb82128fea32c6be20eb82180261db7af8343
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-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
3bf94b865000a80d88314eabcef4587b77bfa533ea064915732cb1d7d17c9e6b
BLAKE2b-256 checksum
How to use checksums
e14c6aa1af1cfa6879c8f48a19c936bcb31fe309edbbd55c2ca78d618556b944
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-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
5b57bb4854bf45b0d5de107fafdb4bb32e043c4c195dd74df17a9a8ee3fdd0ba
BLAKE2b-256 checksum
How to use checksums
3507cc07005794c7ad0a0c0a589b532106f820bb466c4d8d01334dcd2e827915
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp38-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
c123d7aa7eefdc380ba67f45418c225842285ab988216e308419febd11ad893f
BLAKE2b-256 checksum
How to use checksums
c4c79dd458df89cc4fb7cbe6524f5c3cf694a9c14aee67dab8fc6de2c49e078b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp38-cp38-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bfed1ba4b74ba5cada1af6c2cec9501610061e4a36bde247bcbcf8222357a932
BLAKE2b-256 checksum
How to use checksums
8fa6e6787544391b356e98438b3a7e718e968d95433cfa99d19bbddbe5522c29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp38-cp38-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
c39659dc73b69ed14cde8cc563906ed9dc004fd3138c2f9e9808fc8d49ec1c29
BLAKE2b-256 checksum
How to use checksums
8bc90a4766fe597b231c6e8390d40613d6d6779ae452f235eecdb61f5f74aece
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp37-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
56ae84216a0dd5870cdbac0a07bcffd9705995dd6b0f50be4963a9781b9122a7
BLAKE2b-256 checksum
How to use checksums
5c92db52b2d4915127e29e5879923553272a8abc001b773e24b65d6ea35bd5cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5e5170152caaa8cad50ed5545cde44dffbe69c3d9a1e6be82ffa30749bb0c438
BLAKE2b-256 checksum
How to use checksums
8c881640e0d8e56fd20bd2a3f1783e5ce12f5a2c41d0ed21aa3bd30afc706917
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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

Download URL zen_engine-0.28.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
778031c488ec9a3c58d2dc3728a19347150e141af2ee89e8279001aa10a7af85
BLAKE2b-256 checksum
How to use checksums
f3b412f48c983326be4ab3702dcbbc2a05f404a9f260a558991398e4a479224e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.1

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.28.0 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