Eclipse zenoh Python API

Overview

zenoh banner

CI Documentation Status Gitter License License

Eclipse zenoh Python API

Eclipse zenoh is an extremely efficient and fault-tolerant Named Data Networking (NDN) protocol that is able to scale down to extremely constrainded devices and networks.


How to install it

The Eclipse zenoh-python library is available on Pypi.org.
Install the latest available version using pip:

pip install eclipse-zenoh

⚠️ WARNING ⚠️ zenoh-python is developped in Rust. On Pypi.org we provide binary wheels for the most common platforms (MacOS, Linux x86). But also a source distribution package for other platforms.
However, for pip to be able to build this source distribution, there some prerequisites:

  • pip version 19.3.1 minimum (for full support of PEP 517).
    (if necessary upgrade it with command: 'sudo pip install --upgrade pip' )
  • Have a Rust toolchain installed (instructions at https://rustup.rs/)

Supported Python versions and platforms

zenoh-python has been tested with Python 3.6, 3.7, 3.8 and 3.9.

It relies on the zenoh Rust API which require the full std library. See the list Rust supported platforms here: https://doc.rust-lang.org/nightly/rustc/platform-support.html .


How to build it

Requirements:

Steps:

  • Install developments requirements:
    pip install -r requirements-dev.txt
  • Build zenoh-python
    python setup.py develop

This will automatically build the zenoh Rust API, as well as the zenoh-python API and install it in your Python environement.


Running the Examples

The simplest way to run some of the example is to get a Docker image of the zenoh network router (see https://github.com/eclipse-zenoh/zenoh#how-to-test-it) and then to run the examples on your machine.

Then, run the zenoh-python examples following the instructions in examples/zenoh/README.md

Comments
  • Binary wheels for armv6

    Binary wheels for armv6

    Describe the feature

    zenoh-python relies on pypa/cibuildwheel to build the binary wheels that are released on pypi.org. However it doesn't support armv6 and armv7 architectures. The reason being there is no manylinux image available for armv6 nor armv7.

    EDIT 2022-06-08: Thanks to #66 an armv7 wheel is now built. The build now relies on messense/maturin-action which doesn't provide a solution for armv6.

    help wanted new feature 
    opened by JEnoch 10
  • Zenoh-python build failed with

    Zenoh-python build failed with "error[E0164]: expected tuple struct or tuple variant..."

    Hi all , I am new to Rust and Zenoh, When I was building the python client library, I got the errors below:

    error[E0164]: expected tuple struct or tuple variant, found associated function `nix::Error::Sys`
      --> /home/eddie/.cargo/registry/src/github.com-1ecc6299db9ec823/shared_memory-0.11.4/src/unix.rs:87:13
       |
    87 |         Err(nix::Error::Sys(Errno::EEXIST)) => return Err(ShmemError::MappingIdExists),
       |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
       |
       = help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
    
    
    error[E0164]: expected tuple struct or tuple variant, found associated function `nix::Error::Sys`
      --> /home/eddie/.cargo/registry/src/github.com-1ecc6299db9ec823/shared_memory-0.11.4/src/unix.rs:88:13
       |
    88 |         Err(nix::Error::Sys(e)) => return Err(ShmemError::MapCreateFailed(e as u32)),
       |             ^^^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
       |
       = help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
    
    
        Buildingerror[E0164]: expected tuple struct or tuple variant, found associated function `nix::Error::Sys`
       --> /home/eddie/.cargo/registry/src/github.com-1ecc6299db9ec823/shared_memory-0.11.4/src/unix.rs:103:13
        |
    103 |         Err(nix::Error::Sys(e)) => return Err(ShmemError::UnknownOsError(e as u32)),
        |             ^^^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
        |
        = help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
    
    
    error[E0164]: expected tuple struct or tuple variant, found associated function `nix::Error::Sys`
       --> /home/eddie/.cargo/registry/src/github.com-1ecc6299db9ec823/shared_memory-0.11.4/src/unix.rs:119:13
        |
    119 |         Err(nix::Error::Sys(e)) => return Err(ShmemError::MapCreateFailed(e as u32)),
        |             ^^^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
        |
        = help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
    
    
    error[E0164]: expected tuple struct or tuple variant, found associated function `nix::Error::Sys`
       --> /home/eddie/.cargo/registry/src/github.com-1ecc6299db9ec823/shared_memory-0.11.4/src/unix.rs:135:13
        |
    135 |         Err(nix::Error::Sys(e)) => return Err(ShmemError::MapOpenFailed(e as u32)),
        |             ^^^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
        |
        = help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
    
    
       error[E0164]: expected tuple struct or tuple variant, found associated function `nix::Error::Sys`
       --> /home/eddie/.cargo/registry/src/github.com-1ecc6299db9ec823/shared_memory-0.11.4/src/unix.rs:150:13
        |
    150 |         Err(nix::Error::Sys(e)) => return Err(ShmemError::MapOpenFailed(e as u32)),
        |             ^^^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
        |
        = help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
    
    
    error[E0164]: expected tuple struct or tuple variant, found associated function `nix::Error::Sys`
       --> /home/eddie/.cargo/registry/src/github.com-1ecc6299db9ec823/shared_memory-0.11.4/src/unix.rs:166:13
        |
    166 |         Err(nix::Error::Sys(e)) => return Err(ShmemError::MapOpenFailed(e as u32)),
        |             ^^^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
        |
        = help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
    
    
     error: aborting due to 7 previous errors
    
     
    error: could not compile `shared_memory`
    
    To learn more, run the command again with --verbose.
    warning: build failed, waiting for other jobs to finish...
    error: build failed
    💥 maturin failed
      Caused by: Failed to build a native library through cargo
      Caused by: Failed to build a native library through cargo
      Caused by: Cargo build finished with "exit status: 101": `cargo rustc --message-format json --manifest-path Cargo.toml --release --lib --`
    
    opened by eddie9712 8
  • Failed building wheel for eclipse-zenoh

    Failed building wheel for eclipse-zenoh

    Describe the bug

    Standard python example running on Raspberry PI Code:

    from zenoh import Zenoh
    import random
    import time
    
    random.seed()
    
    def read_temp():
        return random.randint(15, 30)
    
    def run_sensor_loop(w):
        # read and produce a temperature every second
        while True:
            t = read_temp()
            w.put('/myfactory/machine1/temp',t)
            print (t)
            time.sleep(15)
    
    if __name__ == "__main__":
        z = Zenoh({'peer': 'tcp/127.0.0.1:7447'})
        w = z.workspace('/')
        run_sensor_loop(w)
    

    Error Message:

    Traceback (most recent call last):
      File "zenoh_producer.py", line 27, in <module>
        run_sensor_loop(w)
      File "zenoh_producer.py", line 20, in run_sensor_loop
        w.put('/myfactory/machine1/temp',t)
      File "/usr/local/lib/python3.7/dist-packages/zenoh/workspace.py", line 50, in put
        self.rt.write_data(
    AttributeError: 'dict' object has no attribute 'write_data'
    

    Any hints what led to this error message?

    To reproduce

    1. Start Zenoh Broker
    2. Execute provided code
    3. Works on Ubuntu 22.04 but led to the shown error on ARM / Raspberry Pi OS.

    System info

    No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 10 (buster) Release: 10 Codename: buster Operating System: Raspbian GNU/Linux 10 (buster) Kernel: Linux 5.10.103-v7l+ Architecture: arm

    • Rust: rustc 1.63.0 (4b91a6ea7 2022-08-08)
    • Python 3.7.3
    • The zenoh router v0.5.0-beta.8-326-g70d7b22
    bug 
    opened by lottz 6
  • zenoh python subscriber work with asyncio

    zenoh python subscriber work with asyncio

    I would like to integrate the zenoh python with the asyncio library. The statement like following: sub = session.declare_subscriber('/rt/hello_world', sub_info, hello_callback) will call the hello_callback function. The argument for the hello_callback can only be the sample: Sample. Inside the hello_callback I can only deserialize the received message.

    Is it possible, that I inside the hello_callback call a coroutine? Because I want to send the message to another broker(NATS broker) for further usage. But I need to call a coroutine to send the message to that broker. I have tried once to decorate the hello_callback function as a async function. But it failed.

    Or another alternative, that the recevied message can be stored in the Subscriber instance. The message can then be accessed.

    new feature 
    opened by Yingliangzhe 6
  • zenoh.net.open connected with not existing host, throws no errors

    zenoh.net.open connected with not existing host, throws no errors

    I would like to wrap the zenoh net into another class. As initialization step, a session has been opened and need to be connected to a zenoh bridge on a remote machine. But as I gives the config a not existing host, the session has also been built without throwing an error. It is a feature, that is not created? Or was I using it wrong?

    As I search for zenoh-python, there are actually two kinds of zenoh-python, one is eclipse-zenoh/zenoh-python from here, and another one is atolab/zenoh-python, which is read in c and wrapped in python. This makes a little bit confused. Is this repo not being used?

    opened by Yingliangzhe 4
  • Custom messages

    Custom messages

    Hello there! I tried out the examples and managed to get them working. I was wondering if there is a recommended way to generate custom messages to be used with zenoh-python, for example by ingesting an .idl file?

    So far, I have managed to use pickle to serialize python containers to be sent, and deserialize them when received.

    opened by aaronchongth 4
  • Use maturin for building zenoh-python. Propose to resolve #64.

    Use maturin for building zenoh-python. Propose to resolve #64.

    This PR aims to resolve issue #64. It comes with

    • Replace the building tool rustsetup-tool by the latest maturin, which is the most recommended tool for PyO3 now.
    • Use maturin-action in Github action for better building management. This PR consistently set the Python to 3.7 in the release workflow. (since the latest maturin only supports >= abi-py37)
    • Support the cross-compilation for armv7. And all the cross-compilation and building on macOS are changed to docker instead of handcrafted settings over QEMU.

    Although this PR only covers the platforms specified in the previous workflow using QEMU, maturin has the possibility of cross-compiling packages for musllinux and other platforms like IBM PC.

    A good example of leveraging PyO3 is the workflow used in graphlib2, of which the built wheels are here.

    opened by YuanYuYuan 3
  • pip install not working on aarch64

    pip install not working on aarch64

    Trying to install on nvidia jetson:

    (venv) [email protected]:$ uname -i
    aarch64
    (venv) [email protected]:$ lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 18.04.6 LTS
    Release:        18.04
    Codename:       bionic
    (venv) [email protected]:$ python --version
    Python 3.6.9
    

    But fails with:

    $ pip install eclipse-zenoh
    Collecting eclipse-zenoh
      Downloading eclipse_zenoh-0.5.0_b8.tar.gz (74 kB)
         |████████████████████████████████| 74 kB 846 kB/s            
      Installing build dependencies ... done
      Getting requirements to build wheel ... done
      Preparing wheel metadata (pyproject.toml) ... done
    Building wheels for collected packages: eclipse-zenoh
      Building wheel for eclipse-zenoh (pyproject.toml) ... error
      ERROR: Command errored out with exit status 1:
       command: /home/alf/proj/zenoh_play/venv/bin/python3 /home/alf/proj/zenoh_play/venv/lib/python3.6/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmp0rv6g8c0
           cwd: /tmp/pip-install-zineoisv/eclipse-zenoh_8413ab83c85a404597df68fa8f7150a8
      Complete output (255 lines):
      Running `maturin pep517 build-wheel -i /home/alf/proj/zenoh_play/venv/bin/python3`
      ⚠️  Warning: Please use maturin in pyproject.toml with a version constraint, e.g. `requires = ["maturin>=0.11,<0.12"]`. This will become an error.
    TLDR;
      error: could not compile `shared_memory`
      
      To learn more, run the command again with --verbose.
      warning: build failed, waiting for other jobs to finish...
      error: build failed
      💥 maturin failed
        Caused by: Failed to build a native library through cargo
        Caused by: Cargo build finished with "exit status: 101": `cargo rustc --message-format json --manifest-path Cargo.toml --release --lib --`
      🔗 Found pyo3 bindings with abi3 support for Python ≥ 3.6
      🐍 Not using a specific python interpreter (With abi3, an interpreter is only required on windows)
      error[E0164]: expected tuple struct or tuple variant, found associated function `nix::Error::Sys`
        --> /home/alf/.cargo/registry/src/github.com-1ecc6299db9ec823/shared_memory-0.11.4/src/unix.rs:87:13
         |
      87 |         Err(nix::Error::Sys(Errno::EEXIST)) => return Err(ShmemError::MappingIdExists),
         |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
         |
         = help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
      
      error[E0164]: expected tuple struct or tuple variant, found associated function `nix::Error::Sys`
        --> /home/alf/.cargo/registry/src/github.com-1ecc6299db9ec823/shared_memory-0.11.4/src/unix.rs:88:13
         |
      88 |         Err(nix::Error::Sys(e)) => return Err(ShmemError::MapCreateFailed(e as u32)),
         |             ^^^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
         |
         = help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
      
      
      error[E0164]: expected tuple struct or tuple variant, found associated function `nix::Error::Sys`
         --> /home/alf/.cargo/registry/src/github.com-1ecc6299db9ec823/shared_memory-0.11.4/src/unix.rs:103:13
          |
      103 |         Err(nix::Error::Sys(e)) => return Err(ShmemError::UnknownOsError(e as u32)),
          |             ^^^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
          |
          = help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
      
      
      error[E0164]: expected tuple struct or tuple variant, found associated function `nix::Error::Sys`
         --> /home/alf/.cargo/registry/src/github.com-1ecc6299db9ec823/shared_memory-0.11.4/src/unix.rs:119:13
          |
      119 |         Err(nix::Error::Sys(e)) => return Err(ShmemError::MapCreateFailed(e as u32)),
          |             ^^^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
          |
          = help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
      
      
      error[E0164]: expected tuple struct or tuple variant, found associated function `nix::Error::Sys`
         --> /home/alf/.cargo/registry/src/github.com-1ecc6299db9ec823/shared_memory-0.11.4/src/unix.rs:135:13
          |
      135 |         Err(nix::Error::Sys(e)) => return Err(ShmemError::MapOpenFailed(e as u32)),
          |             ^^^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
          |
          = help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
      
      
      error[E0164]: expected tuple struct or tuple variant, found associated function `nix::Error::Sys`
         --> /home/alf/.cargo/registry/src/github.com-1ecc6299db9ec823/shared_memory-0.11.4/src/unix.rs:150:13
          |
      150 |         Err(nix::Error::Sys(e)) => return Err(ShmemError::MapOpenFailed(e as u32)),
          |             ^^^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
          |
          = help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
      
      
      error[E0164]: expected tuple struct or tuple variant, found associated function `nix::Error::Sys`
         --> /home/alf/.cargo/registry/src/github.com-1ecc6299db9ec823/shared_memory-0.11.4/src/unix.rs:166:13
          |
      166 |         Err(nix::Error::Sys(e)) => return Err(ShmemError::MapOpenFailed(e as u32)),
          |             ^^^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
          |
          = help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
      
      
      error: aborting due to 7 previous errors
      
      
      For more information about this error, try `rustc --explain E0164`.
      
      Error: command ['maturin', 'pep517', 'build-wheel', '-i', '/home/alf/proj/zenoh_play/venv/bin/python3'] returned non-zero exit status 1
      ----------------------------------------
      ERROR: Failed building wheel for eclipse-zenoh
    Failed to build eclipse-zenoh
    ERROR: Could not build wheels for eclipse-zenoh, which is required to install pyproject.toml-based projects
    
    opened by PinkJohnOfUs 3
  • In zenoh-python, example usage seems to be wrong

    In zenoh-python, example usage seems to be wrong

    Hello,

    In examples/zenoh/README.md , I am not able to use the examples as shown:

      python3 z_put
    

    As I get a "file not found" error. I am on Mac OS X 10.15.6 and python 3.8.2 , pip3 21.01 (but have seen this issue on Ubuntu 20.04 as well). Instead I have to go into that directory and do this:

    python3 z_put.py
    

    Is there something wrong with my python installation of this package, or is the example wrong?

    opened by vinnnyr 3
  • `unable to connect any locator of scouted peer` zenoh-plugin-dds

    `unable to connect any locator of scouted peer` zenoh-plugin-dds

    I am trying to use the Zenoh Python API with pycdr as in the demo to interface with cycloneDDS via zenoh-plugin-dds. The Python api was installed via pip: eclipse-zenoh-nightly I noticed that the python API examples don't seem to be compatible with the master or latest zenoh-plugin-dds docker image: Unable to connect any locator of scouted peer D6B17F40D8234F80AE42D205FCB23673 : [Locator { address: Tcp(SocketAddr(192.168.0.62:33681)), metadata: None }, Locator { address: Tcp(SocketAddr(172.17.0.1:33681)), metadata: None }] I have tried the master and apis-merge branches of the Python API but no luck. Should I build the Python API from source instead of using the PyPi binary?

    opened by akila-ganlath-tm 2
  • Problems with

    Problems with "hello world"

    Hey so I am trying to run

    python3 z_sub.py
    

    and I get the following error:

    Traceback (most recent call last):
      File "z_sub.py", line 20, in <module>
        from zenoh import Reliability, SubMode
    ImportError: cannot import name 'Reliability' from 'zenoh' (/home/andrzej/.local/lib/python3.8/site-packages/zenoh/__init__.py)
    
    

    What should I do? Do you think that maybe I have missed versions 0.6 and 0.5? Because even I can't change the zenoh.version for some reasons....

    opened by femust 2
  • Introducing Python context managers

    Introducing Python context managers

    Describe the feature

    I've tried out the zenoh-python api and I've noticed the manual opening and closing of sessions and subscriptions. I think it would be way more idiomatic Python to add context managers:

    with zenoh.open() as session:
        for key, value in session.info().items():
            print(f"{key}: {value}")
    

    This makes sure the session is automatically closed when exiting the "scope", even when an exception is raised. I have implemented the basic case for session here, but I have to admit that the async case was a bit beyond my current Rust abilities. Implementing these context managers exists of nothing more than implementing __enter__ and __exit__ as methods for the sync case and __aenter__ and __aexit__ for the async case. This would also allow you to make with zenoh.open() return a sync session and async with zenoh.open() return a async session, but that would require an intermediate object with the four methods implemented and would destroy the existing session = zenoh.open() style setup without some potentially ugly trickery.

    opened by thijsmie 1
  • Problems with sync examples

    Problems with sync examples

    opened by Jiarre 2
  • In case of Raw Value get_content() returns a list type instead of bytes

    In case of Raw Value get_content() returns a list type instead of bytes

    To reproduce:

    import zenoh
    v = zenoh.Value.Raw(0, b'\x48\x69\x21')
    print(type(v.get_content()))
    

    This displays <class 'list'>. But one would expect <class 'bytes'>

    bug 
    opened by JEnoch 0
  • Add API for shared memory transport

    Add API for shared memory transport

    zenoh in Rust implement a zero-copy shared memory transport. See examples of use:

    We need to make this transport also accessible from the zenoh Python API.

    new feature 
    opened by JEnoch 2
Releases(0.7.0-rc)
a safe proxy over tls

TlsProxys 基于TLS协议的http流量代理 安装 ※ 需要python3.7+ linux: python3.9 -m pip install TlsProxys windows: pip install TlsProxys 基本用法 服务器端: $ tpserver [command]

56 Nov 30, 2022
Desktop application for checking sites connection in a background mode

Site connectivity checker Desktop application for checking site connection in a background mode by sending ICMP messages. Problem and solution Usually

Karina Singatullina 26 Dec 19, 2022
Very simple and tiny file sharing service written in python

Simple File sharing tool Sharing client usage (You will need to use python3 for linux) main.py --send -f file/path Optionnal flags : pwd : set a passw

2 Jul 26, 2022
AdaFruit Funhouse publishing Temperature, Humidity and Pressure to MQTT / Apache Pulsar

pulsar-adafruit-funhouse AdaFruit Funhouse publishing Temperature, Humidity and Pressure to MQTT / Apache Pulsar Device Get your own from adafruit Ada

Timothy Spann 1 Dec 30, 2021
TicTacToe using Socket Server

TicTacToe using Socket Server This is a project for the class : 18CSC302J - Computer Networks by Dr. S.Babu Contributors Suvodeep Sinha RA191100301010

Suvodeep Sinha 12 Nov 30, 2022
👨🏼‍💻 ‎‎‎‏‏ A customizable man-in-the-middle TCP proxy with out-of-the-box support for HTTP & HTTPS.

👨‍💻 mitm A customizable man-in-the-middle TCP proxy with out-of-the-box support for HTTP & HTTPS. Installing pip install mitm Note that OpenSSL 1.1

Felipe 92 Jan 05, 2023
Tsunami-Fi is simple multi-tool bash application for Wi-Fi attacks

🪴 Tsunami-Fi 🪴 Русская версия README 🌿 Description 🌿 Tsunami-Fi is simple multi-tool bash application for Wi-Fi WPS PixieDust and NullPIN attack,

【Kiko】 35 Dec 09, 2022
A simple and lightweight server that allows clients to connect and launch a shell remotely through a browser.

carrotsh A simple and lightweight server that allows clients to connect and launch a shell remotely through a browser. Uses xterm.js for the frontend

V9 31 Dec 27, 2022
A lightweight python script that can monitor the T-Mobile Home Internet Nokia 5G Gateway for band and connectivity and reboot as needed.

tmo-monitor A lightweight Python 3 script that can monitor the T-Mobile Home Internet Nokia 5G Gateway for band and connectivity and reboot as needed.

61 Dec 17, 2022
Qtas(Quite a Storage)is an experimental distributed storage system developed by Q-team in BJFU Advanced Computer Network sources.

Qtas(Quite a Storage)is a experimental distributed storage system developed by Q-team in BJFU Advanced Computer Network sources.

Jiaming Zhang 3 Jan 12, 2022
QUIC and HTTP/3 implementation in Python

aioquic What is aioquic? aioquic is a library for the QUIC network protocol in Python. It features a minimal TLS 1.3 implementation, a QUIC stack and

1.2k Dec 29, 2022
Python script to stop qBittorrent from torrenting without VPN for users with static IP.

Python script to stop qBittorrent from torrenting without VPN for users with static IP.

voidoak_ 1 Oct 25, 2021
Qobuz-rpc - A simple discord rich presence client for qobuz written in Python

qobuz-rpc A simple discord rich presence client for qobuz written in Python It's

Raphael O. 13 Dec 15, 2022
IoT owl is light face detection and recognition system made for small IoT devices like raspberry pi.

IoT Owl IoT owl is light face detection and recognition system made for small IoT devices like raspberry pi. Versions Heavy with mask detection withou

Ret2Me 6 Jun 06, 2022
IPE is a simple tool for analyzing IP addresses. With IPE you can find out the server region, city, country, longitude and latitude and much more in seconds.

IPE is a simple tool for analyzing IP addresses. With IPE you can find out the server region, city, country, longitude and latitude and much more in seconds.

Paul 0 Jun 11, 2022
Implementing Cisco Support APIs into NetBox

NetBox Cisco Support API Plugin NetBox plugin using Cisco Support APIs to gather EoX and Contract coverage information for Cisco devices. Compatibilit

Timo Reimann 23 Dec 21, 2022
Dshell is a network forensic analysis framework.

Dshell An extensible network forensic analysis framework. Enables rapid development of plugins to support the dissection of network packet captures. K

DEVCOM Army Research Laboratory 5.4k Jan 06, 2023
This is a small python code that I use with my NAS server connected to Plex

Spotifarr This is a small python code that I use with my NAS server connected to Plex I didn't appreciate how Lidarr works because it downloads a full

Automator 35 Oct 04, 2022
Roadster - Distance to Closest Road Feature Server

Roadster: Distance to Closest Road Feature Server Milliarium Aerum, the zero of

Textualization Software Ltd. 4 May 23, 2022
A simple tool to utilize the basic functionality of the Private API From Virus Total

Welcome To VT-SCAN (viurs total api) Information This is a simple tool to utilize the basic functionality of the Private API From Virus Total. with th

0X0ŽĒR∅⁰ 1 Sep 21, 2022