Skip to main content

Read-only EtherNet/IP implicit connection bridge that captures PLC I/O data and publishes it to NATS

Project description

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
)

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

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.1.0 (2025)

  • Configurable RPI (Requested Packet Interval) via constructor parameter
  • Configurable UDP port for T2O data reception, enabling multiple parallel bridges
  • EIPScanner patched to include T2O_SOCKADDR_INFO in Forward Open request
  • 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

eip2nats-1.3.0-cp314-cp314-win_amd64.whl (433.1 kB view details)

Uploaded CPython 3.14Windows x86-64

eip2nats-1.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

eip2nats-1.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

eip2nats-1.3.0-cp313-cp313-win_amd64.whl (419.9 kB view details)

Uploaded CPython 3.13Windows x86-64

eip2nats-1.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

eip2nats-1.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

eip2nats-1.3.0-cp312-cp312-win_amd64.whl (419.9 kB view details)

Uploaded CPython 3.12Windows x86-64

eip2nats-1.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

eip2nats-1.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

eip2nats-1.3.0-cp311-cp311-win_amd64.whl (419.0 kB view details)

Uploaded CPython 3.11Windows x86-64

eip2nats-1.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

eip2nats-1.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

eip2nats-1.3.0-cp310-cp310-win_amd64.whl (417.9 kB view details)

Uploaded CPython 3.10Windows x86-64

eip2nats-1.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

eip2nats-1.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

eip2nats-1.3.0-cp39-cp39-win_amd64.whl (417.2 kB view details)

Uploaded CPython 3.9Windows x86-64

eip2nats-1.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

eip2nats-1.3.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

File details

Details for the file eip2nats-1.3.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: eip2nats-1.3.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 433.1 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

File hashes

Hashes for eip2nats-1.3.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 f764aeae4b8acada14c8b5863bcdab93736ee3420cf5363f86d8dd3855c8af21
MD5 15afcb77284e3f1ebdf3d298566fc5d9
BLAKE2b-256 7956821eba5cb79ba305ed6c1098376e9340d1d732c8d64ce3076b338005f808

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for eip2nats-1.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 71e98a83bcabec0e670276133e28e932a16b7b0411bd51d78fa60751672817b7
MD5 c1a487453daef1d67f36b4fc469bbc99
BLAKE2b-256 6573e46a2d1ceb6dc0797617658729f7cd3f10ff3b785cdfe4e339273542f496

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for eip2nats-1.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 c1bea8754d98fc218b8acce02daafe9048f60d7530d9652d692e4f321b28588d
MD5 e63b10c107160095360f6700a0fc11ec
BLAKE2b-256 69bd9cef2dc8bcfabea0809bb413b6f77ec4e80219f98fbdf1c233dae45c494d

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: eip2nats-1.3.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 419.9 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

File hashes

Hashes for eip2nats-1.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1a95a1a7d0de86939bd22d72dcaed3298441c12d44f617993ae8e352e39e6cf9
MD5 5b0f07fd53bba57f144ccd9ee18bffa1
BLAKE2b-256 f7d5cd7b221e4440aca6e6b86f81d5b85d084b824e05a8dba9603e6ed28a896d

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for eip2nats-1.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 961ff8c92dfd2b12c0d5ee1f5afad62169a693bd10a45f612e55e999d7214206
MD5 54e8a283fff977d0fef6507669ca8629
BLAKE2b-256 ea3eff4158ee7bac5f2c2fd81660909ab184bc2190e7154e26e1a4e672c00346

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for eip2nats-1.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 6b56dbe0cdffd1fd8846bdcbf3044df99e0f581c06dddc7d3300a786dc1ffbc1
MD5 08df0cb7a5b29079809e8445a61803cb
BLAKE2b-256 eafb3ffc0468e502e2f387415c23f63ff0e29e9f17a583c6851a52be3eb0f488

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: eip2nats-1.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 419.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

File hashes

Hashes for eip2nats-1.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 66bf1fcc4f4dfc16e2bd6d9543c80b287014a787808f99b7679b73a2936cbc7b
MD5 292b1476e893154dab63812b25e6a745
BLAKE2b-256 2777de45980f8c01aac5bc68bb1e51fb40594debeaaa36545f43f5f6ed9ef54e

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for eip2nats-1.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b2852e77c22e6e04b5ca0b10d46d394cbafc16d3fedb1b79e2ee719fce2cb5a6
MD5 7653307f29cbdb5523a8f92dabdfb90b
BLAKE2b-256 be028f58c9a2d10a443a21416b7d4681cdfd15e2767e9319f3dd24b23abd03b0

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for eip2nats-1.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 eca2d5a4669c726271d0d99775dbb39397290f4aa5929f0ff368e88dd5fdd3b0
MD5 b2912c6ce6443ef0744890ad2ff094b5
BLAKE2b-256 e3818399c4d745039e98d52d71af09a891ad70ae75a28c14f28e19df5de0c772

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: eip2nats-1.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 419.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

File hashes

Hashes for eip2nats-1.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 37c43285fb9bb4dc37e33e696fb98085ba3683ec795ec2e75d315a97feba7517
MD5 919e5c0389c9f08c43d99bbd6910ec8d
BLAKE2b-256 996c39d12069ac1bd1693d22d64b868b3f58f10bc8e3ced94e0c3edfdc1457d5

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for eip2nats-1.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b34825b388b7da502d5ef7349fde2fe76f4a1113c49043993f330532e3539c51
MD5 a88b68873453e001077db1da3d4cae44
BLAKE2b-256 a3a8355ecfbd4719825a99319e862330d9f1ff3ae1d5d5c87f81b84295522d10

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for eip2nats-1.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 a6344aceafedb2f5ecbfcb061befcaead2ccc76557a5eb5601a3ac6c2d79b61d
MD5 a2667ba6bb264b9694b1f9d383f04fa2
BLAKE2b-256 38d09b85696b75b626f31ede9937ea8f8ac1d3cc784cfe153d7821d326b2c878

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: eip2nats-1.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 417.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

File hashes

Hashes for eip2nats-1.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 acd875618346c7be7e1ca7afb1f109847dcd06bfef657b4d8981da7d76c29804
MD5 53eb219603c3bd104eabb49ca4d3b91d
BLAKE2b-256 b5bbfe73a0f97cf2c3b6152df40fb97e244d422a52fc2a0e894f8d5e66e1d501

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for eip2nats-1.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 6cf3a86b66440a1f2911f622405ff7b9f4baa44af170be9f14959612f2578978
MD5 3090ab19bca80f63196e506d86e84974
BLAKE2b-256 0bae65583701ce1923054be8ae78342d609ae2c265bf24186f32300e00192f03

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for eip2nats-1.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 a38e326ca412bbaff733755c5b758c80e17448458cf969a9662c26944bb44bc8
MD5 9d6f9c6a6413fe61cb23de42727cf32c
BLAKE2b-256 f144d9791d0407203f49f80bf5718be265f620f6cf74af6e99bdd428a2ef8c7e

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: eip2nats-1.3.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 417.2 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

File hashes

Hashes for eip2nats-1.3.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 5c86e086b8fd74031c6e1b2ae55168657c9acdcb6325b0b587f9e69942652770
MD5 39ba46aae7623b6ed1c6abd2e5e7a0d8
BLAKE2b-256 6040968790f795563214a78b4fc529bbf2d3f6bbd4038563314f16c1ff243132

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for eip2nats-1.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 074bd2f37cac58b355a56f7d7065fabb3441d15703cefbea7e124008e0f7f2e2
MD5 adefc8daa06fcd89c7308a7999549dde
BLAKE2b-256 3a4692ae8ad9b92da53fc2e2877c04075df3c36af1ec5570c6cf2e9ca57acd31

See more details on using hashes here.

File details

Details for the file eip2nats-1.3.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for eip2nats-1.3.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 66005231802e520aae0b44bf7ea84379a7771f095a02f04922990a56e9658081
MD5 80814752052decf47d0a2ee4b4e428e7
BLAKE2b-256 4f49cccebb6dab7aeb452a32a9d057a8d9419246673e6881652c4ea3eebc8a89

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page