Skip to main content

eip2nats - EtherNet/IP to NATS Bridge

Read-only bridge that opens an EtherNet/IP implicit (I/O) connection to a PLC, captures the T2O (Target-to-Originator) data stream and publishes every packet to a NATS subject. It does not write data to the PLC — it acts as a passive listener, similar to a sniffer.

All dependencies (libnats, libEIPScanner) are bundled in the wheel.

Features

  • Read-only: Captures PLC I/O data via implicit connection, no writes
  • Self-contained: Includes compiled libnats and libEIPScanner
  • Zero dependencies: No system library installation required
  • Device presets: Built-in assembly constants for known devices (RM75E, ClipX)
  • High performance: Native C++ bindings with pybind11
  • Auto-reconnect: Recovers automatically from connection loss
  • Parallel bridges: Run multiple bridges on different UDP ports simultaneously
  • Thread-safe: Safe handling of multiple connections

Installation

pip install eip2nats

Pre-built wheels are available on PyPI for Linux and Windows.

Building from Source

If a pre-built wheel is not available for your platform, you can build from source:

Linux:

./setup_project_linux.sh

Windows (PowerShell, requires Visual Studio Build Tools):

.\setup_project_windows.ps1

This automatically:

  1. Creates a virtual environment in venv/
  2. Installs Hatch and pybind11
  3. Compiles nats.c, EIPScanner and the Python binding
  4. Creates the wheel
  5. Installs the wheel in the venv

Usage

# Activate virtual environment
source venv/bin/activate    # Linux
.\venv\Scripts\Activate     # Windows PowerShell

# Run example
python examples/example_python_rm75e.py

# Deactivate when done
deactivate

Basic Usage

import eip2nats

# Create bridge (using RM75E device presets)
bridge = eip2nats.EIPtoNATSBridge(
    "192.168.17.200",              # PLC IP address
    "nats://192.168.17.138:4222",  # NATS server
    "plc.data",                    # NATS subject/topic
    config_assembly=eip2nats.devices.RM75E.CONFIG_ASSEMBLY,
    o2t_assembly=eip2nats.devices.RM75E.O2T_ASSEMBLY,
    t2o_assembly=eip2nats.devices.RM75E.T2O_ASSEMBLY,
    t2o_size=100,
    rpi=2000,                      # Requested Packet Interval (µs)
    port=2222,                     # Local UDP port for T2O data
)

# Start
if bridge.start():
    import time
    print("Bridge running!")

    # Monitor
    while bridge.is_running():
        time.sleep(5)
        print(f"RX={bridge.get_received_count()}, "
              f"TX={bridge.get_published_count()}")

    # Stop
    bridge.stop()

More examples in examples/

Requirements

Linux:

  • Python 3.7+
  • git, cmake, make, g++, python3-venv

Windows:

  • Python 3.7+
  • git, cmake
  • Visual Studio Build Tools (cl.exe)

Development

See DEVELOPMENT.md for the full development guide (VSCode setup, debugging, workflows).

Create Release

hatch build

Manual Build (without setup script)

git clone https://github.com/kliskatek/eip2nats.git
cd eip2nats
pip install hatch pybind11

# Build dependencies
python scripts/build_nats.py
python scripts/build_eipscanner.py
python scripts/build_binding.py

# Create wheel
hatch build

Project Structure

eip2nats/
├── pyproject.toml                # Hatch configuration
├── hatch_build.py                # Hook for platform-specific wheel
├── README.md
├── DEVELOPMENT.md                # VSCode development guide
├── LICENSE                       # MIT
├── THIRD_PARTY_LICENSES          # nats.c and EIPScanner licenses
├── setup_project_linux.sh        # Automatic setup (Linux)
├── setup_project_windows.ps1     # Automatic setup (Windows)
├── src/
│   └── eip2nats/
│       ├── __init__.py           # Python package
│       ├── bindings.cpp          # pybind11 bindings
│       ├── EIPtoNATSBridge.h     # C++ header
│       ├── EIPtoNATSBridge.cpp   # C++ implementation
│       └── lib/                  # Compiled libraries (auto-generated)
│           ├── libnats.so / nats.dll
│           └── libEIPScanner.so / EIPScanner.dll
├── scripts/
│   ├── build_config.py           # Shared build configuration
│   ├── build_nats.py             # Builds nats.c
│   ├── build_eipscanner.py       # Builds EIPScanner
│   ├── build_binding.py          # Builds Python binding (.pyd/.so)
│   ├── build_example_cpp.py      # Builds C++ example
│   └── binding_CMakeLists.txt    # CMake template for binding (Windows)
├── examples/
│   ├── example_python_rm75e.py    # Python example (RM75E)
│   ├── example_python_clipx.py    # Python example (ClipX)
│   ├── example_cpp_clipx.cpp      # C++ example (ClipX)
│   └── example_cpp.cpp            # C++ example (debugging)
├── tests/
│   └── test_python.py            # Python unit tests
└── build/                        # Auto-generated, in .gitignore
    ├── dependencies/             # nats.c and EIPScanner clones
    └── example_cpp/              # Compiled C++ executable

How It Works

  1. Build scripts (scripts/):

    • build_nats.py: Clones and compiles nats.c -> libnats.so / nats.dll
    • build_eipscanner.py: Clones and compiles EIPScanner -> libEIPScanner.so / EIPScanner.dll
    • build_binding.py: Compiles the Python binding -> .so (Linux) / .pyd (Windows)
    • All copy binaries to src/eip2nats/lib/
  2. hatch build:

    • Packages the full src/eip2nats/ (code + binaries)
    • hatch_build.py forces platform-specific wheel tags
    • Linux: relative RPATH ($ORIGIN), Windows: os.add_dll_directory()
    • The wheel contains everything needed
  3. pip install:

    • Installs the wheel
    • Binaries end up in site-packages
    • Python loads libraries automatically
    • Works without system dependencies!

Advantages

vs System Libraries:

  • No sudo apt-get install required
  • No version conflicts
  • Portable across systems

vs Regular Wheels:

  • Includes all C/C++ dependencies
  • Single file to install
  • Works on systems without compilers

vs Docker:

  • Lighter (MBs vs GBs)
  • Direct Python integration
  • No Docker privileges required

API Reference

Class: EIPtoNATSBridge

bridge = eip2nats.EIPtoNATSBridge(
    plc_address: str,
    nats_url: str,
    nats_subject: str,
    use_binary_format: bool = True,
    config_assembly: int = 4,       # Configuration assembly instance
    o2t_assembly: int = 2,          # O2T data assembly instance
    t2o_assembly: int = 1,          # T2O data assembly instance
    t2o_size: int = 0,              # T2O connection size in bytes
    rpi: int = 2000,                # Requested Packet Interval (µs), applied to O2T and T2O
    port: int = 2222,               # Local UDP port for receiving I/O data
    connection_timeout_multiplier: int = 5,  # CIP timeout multiplier (0-7)
)

Methods:

  • start() -> bool: Starts the bridge
  • stop() -> None: Stops the bridge
  • is_running() -> bool: Bridge status
  • get_received_count() -> int: Messages from PLC
  • get_published_count() -> int: Messages to NATS
  • get_reconnect_count() -> int: Automatic EIP reconnections

NATS Message Format

Each message published to NATS contains the CIP sequence number prepended to the I/O data:

Binary format (use_binary_format=True, default):

[seq_lo] [seq_hi] [data_0] [data_1] ... [data_n]
  byte 0   byte 1   byte 2   byte 3       byte n+2
  • Bytes 0-1: CIP sequence number (uint16, little-endian)
  • Bytes 2+: Application data from the PLC

Decoding example in Python:

import struct

sequence = struct.unpack_from('<H', msg.data, 0)[0]
data = msg.data[2:]

JSON format (use_binary_format=False):

{"timestamp":1234567890,"sequence":42,"size":100,"data":"0a1b2c..."}

The sequence number is useful for detecting lost packets: if you receive sequence 100 followed by 102, one packet was lost.

Device Presets: eip2nats.devices

Pre-defined assembly constants for known EIP devices:

# RMC75E (Delta Computer Systems)
eip2nats.devices.RM75E.CONFIG_ASSEMBLY  # 4
eip2nats.devices.RM75E.O2T_ASSEMBLY     # 2
eip2nats.devices.RM75E.T2O_ASSEMBLY     # 1

# ClipX (HBK / Hottinger Brüel & Kjær)
eip2nats.devices.ClipX.CONFIG_ASSEMBLY  # 1
eip2nats.devices.ClipX.O2T_ASSEMBLY     # 101
eip2nats.devices.ClipX.T2O_ASSEMBLY     # 100

Troubleshooting

Error: "cannot open shared object file"

Even though the wheel includes the libraries, check RPATH:

ldd $(python -c "import eip2nats; print(eip2nats.__file__.replace('__init__.py', 'lib/eip2nats.*.so'))")

All dependencies should resolve locally.

Rebuild on Another System

git clone <repo>
cd eip2nats
python scripts/build_nats.py
python scripts/build_eipscanner.py
python scripts/build_binding.py
hatch build

Clean Builds

rm -rf build/ dist/ src/eip2nats/lib/

Changelog

v1.3.2 (2025)

  • Configurable connection timeout multiplier via connection_timeout_multiplier parameter (default: 5)

v1.3.1 (2025)

  • CIP sequence number prepended to NATS payload (binary: 2-byte LE prefix; JSON: sequence field)

v1.3.0 (2025)

  • Configurable UDP port for T2O data reception, enabling multiple parallel bridges
  • EIPScanner patched to include T2O_SOCKADDR_INFO in Forward Open request
  • Pinned EIPScanner dependency to known-good commit (12c89a5)
  • CPython 3.14 wheel build target

v1.2.0 (2025)

  • Configurable RPI (Requested Packet Interval) via constructor parameter
  • Added HBK ClipX device preset
  • Added ClipX examples (Python and C++)
  • Raspberry Pi build support

v1.0.0 (2025)

  • Initial release
  • Self-contained wheel with nats.c and EIPScanner
  • Windows (MSVC) and Linux (GCC) support
  • Binary and JSON format support
  • Thread-safe operations

Contributing

  1. Fork the project
  2. Create a branch (git checkout -b feature/amazing)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push (git push origin feature/amazing)
  5. Open a Pull Request

License

MIT License - see LICENSE file

Credits

Metadata

Release files for eip2nats 1.3.2

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

Built distributions (wheels)

Table of built distributions (wheels) for eip2nats 1.3.2
File
eip2nats-1.3.2-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
eip2nats-1.3.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
eip2nats-1.3.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
eip2nats-1.3.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
eip2nats-1.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
eip2nats-1.3.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
eip2nats-1.3.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
eip2nats-1.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
eip2nats-1.3.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
eip2nats-1.3.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
eip2nats-1.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
eip2nats-1.3.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
eip2nats-1.3.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
eip2nats-1.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
eip2nats-1.3.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
eip2nats-1.3.2-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
eip2nats-1.3.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
eip2nats-1.3.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64 Details

Total release size: 21.3 MB

Release files / eip2nats-1.3.2-cp314-cp314-win_amd64.whl

Download URL eip2nats-1.3.2-cp314-cp314-win_amd64.whl
Size 433.9 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
9673b3532b1ac3ff559d318041923ba3c8c9f5df3c4047d3ea32843bab01473b
BLAKE2b-256 checksum
How to use checksums
9fd740c136bb4d53bb3c310758a3449a0dcd5a008e186f1f76ffab5c49ee6570
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL eip2nats-1.3.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.6 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c17a08ab7dbf953e85cf726db59cc2a2efa376a535f0a0e5e147af1c4ad8be0f
BLAKE2b-256 checksum
How to use checksums
d83f05bf6896ac68babdc91e4c9c25665b476d8e93b80cf8edb31346cb4d53c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL eip2nats-1.3.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 1.5 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
2f6808e98f500059546e46e0b97dc60f9678dd78f65fe3ecb47a5019fa842c4c
BLAKE2b-256 checksum
How to use checksums
7950b9280e1343580207e9bb41099663c7249933d4080ba833312ef72b60c30e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp313-cp313-win_amd64.whl

Download URL eip2nats-1.3.2-cp313-cp313-win_amd64.whl
Size 420.7 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
ebb0a4e2e2d2f7381ad9bfe22cea262700222051d3a0227ee537f9fd2e02d569
BLAKE2b-256 checksum
How to use checksums
dd4b40a201cc4f77c2dba1397ed26d19d5e00ae8a47fe8bda8f4d66ff3667770
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL eip2nats-1.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.6 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
bbd7b3b142ce8dfa4bed1cf2400393fdfd033bcec458b136ad8885291a7f265c
BLAKE2b-256 checksum
How to use checksums
2fe285ab23da4f81bdb010b9e0d82c882198af67c5e6e20df48579c5596ad8d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL eip2nats-1.3.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 1.5 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
6c1213066c45d6b901c40b605b64ca6b0178bfc4eea583c87b765264267180b4
BLAKE2b-256 checksum
How to use checksums
89a94e1af8804c0412dce389175d5ca5e34a3cd725d4714e109dd80151753ebc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp312-cp312-win_amd64.whl

Download URL eip2nats-1.3.2-cp312-cp312-win_amd64.whl
Size 420.7 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
c9e36e36f11bec17ef3b723cc1d00c6f33715a0f36e2cfacb2a4b4d3382e64b8
BLAKE2b-256 checksum
How to use checksums
489e0b39ae35edcab7cc57a5092357312da039e750ef0a11ca78651bcdcecc4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL eip2nats-1.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.6 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c9b3d58188963faa59651dfa61853dffd94fe89ba5e47c7d11357b54bff0803d
BLAKE2b-256 checksum
How to use checksums
a47d779eebaa2c17d2efa337f7155736bc8610e5d7b3e2383fe855f11f2e42ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL eip2nats-1.3.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 1.5 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
a05f7e47808516a127c3abe5090648a6d454daaccd0b077d3bb4bba174d2b51e
BLAKE2b-256 checksum
How to use checksums
2e73a9b54342ad4abe57e0bdad101e9bf79a6c7ac0da3f85878184c9cb1f9e50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp311-cp311-win_amd64.whl

Download URL eip2nats-1.3.2-cp311-cp311-win_amd64.whl
Size 420.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
c8c51fd2c0e1b760befe8c946d8779231aa74bd2e88b95d94134dbb7ba75176c
BLAKE2b-256 checksum
How to use checksums
a088e470a0660fc7f78a1aa8d0f6aee6de985f9d1137cf1e118b0df7207304bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL eip2nats-1.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.6 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
01452a2379b01f3815bf7c5f346708950634cb018313c031683b1dc1e546e157
BLAKE2b-256 checksum
How to use checksums
a2e572b9f98ef3843e9780376ad3233095f06e707def51fe067f9b4f1b7e4c9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL eip2nats-1.3.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 1.5 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
747a29e6ca1fbbe3ebc5e8ae42bdb95b9b2f90c120c047dbab8940e47ee8c9ca
BLAKE2b-256 checksum
How to use checksums
83e454e86e9f101af9e39398fa47aa9abe9cf103b5a5eb2e92a69966ccab59e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp310-cp310-win_amd64.whl

Download URL eip2nats-1.3.2-cp310-cp310-win_amd64.whl
Size 418.8 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
464d0fbf8fcbb4cbcbe38236b014d726d68e839f0661cdab1fbdfa057806df31
BLAKE2b-256 checksum
How to use checksums
944f89af2509fbe4b4e5c1c9963c6d3be1022beccdd4060a2e11742d951d9121
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL eip2nats-1.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.6 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
23f12e8c7ec3c10870837a8a145e8b8809f3ed58c6d8461a208db72846c56e04
BLAKE2b-256 checksum
How to use checksums
a168310f24cbc6a825603d1c459685f83ab940b158a0ba41b78da0bf9686c8a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL eip2nats-1.3.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 1.5 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
578848dd012a881fd0cb664e0c78c537c29e4fe9a5026d1f4dc01625b2b120a1
BLAKE2b-256 checksum
How to use checksums
044db2ee887f0897f9d2bcd2ba27fac401e160d8e7479f9fd78cc081e42da0d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp39-cp39-win_amd64.whl

Download URL eip2nats-1.3.2-cp39-cp39-win_amd64.whl
Size 418.1 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
eea1a2b6d9584f4f2690b362b8af6a2b6d73587b7e02bb6bb93aafd46c5799a2
BLAKE2b-256 checksum
How to use checksums
32bc3895567ef62f13af8963db3fcfb874b2572ed185216085f796e66fbe230a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL eip2nats-1.3.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.6 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
41455e50128bc053d9c54844eeeadb92a1fe16c6016078b391cbcf6111312141
BLAKE2b-256 checksum
How to use checksums
49d3a2a60c0c34c4ec1c0a2bbf09de4347ccc47961f8ebfd74335fcccdfd861d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release files / eip2nats-1.3.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL eip2nats-1.3.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 1.5 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
f4c826e8b099963530b7c211d04aff1b53976b93e6982498a6407b5fb4c5b85f
BLAKE2b-256 checksum
How to use checksums
d8d635f949e030adfd35f385f89ceac97872630957dd19a8edb03f80841b8ca1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

Release history Release notifications | RSS feed

This release

1.3.2 This release

18 release files

1.3.1

18 release files

1.3.0

18 release files

1.2.0

18 release files

1.1.0

15 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