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)
This python script can change the mac address after some attack

MAC-changer Hello people, this python script was written for people who want to change the mac address after some attack, I know there are many ways t

5 Oct 10, 2022
No-dependency, single file NNTP server library for developing modern, rfc3977-compliant (bridge) NNTP servers.

nntpserver.py No-dependency, single file NNTP server library for developing modern, rfc3977-compliant (bridge) NNTP servers for python =3.7. Develope

Manos Pitsidianakis 44 Nov 14, 2022
PySocks lets you send traffic through SOCKS proxy servers.

PySocks lets you send traffic through SOCKS proxy servers. It is a modern fork of SocksiPy with bug fixes and extra features. Acts as a drop-i

1.1k Dec 07, 2022
Network-Shredder is a python based NIDS.

Network-Shredder is a python based NIDS.

Oussama RAHALI 9 Dec 13, 2022
Utility for converting IP Fabric webhooks into a Teams format.

IP Fabric Webhook Integration for Microsoft Teams Setup IP Fabric Setup Go to Settings Webhooks Add webhook Provide a name URL will be: 'http://Y

Community Fabric 1 Jan 26, 2022
A simple Encrypted IM chat software Server & client based on Python3.

SecretBox A simple Encrypted IM chat software Server & client based on Python3. Version 1.0 命令行版 安装步骤 Server 运行pip3 install -r requirements 安装依赖。 运行py

h3h3da 5 Oct 31, 2022
A simple python script to send cute messages to my boyfriend.

Morning Messages A simple python script to send cute messages to my boyfriend. It gives him the weather and news currently. Installation git clone htt

Sabrina Medwinter 3 Oct 12, 2022
DNSStager is an open-source project based on Python used to hide and transfer your payload using DNS.

What is DNSStager? DNSStager is an open-source project based on Python used to hide and transfer your payload using DNS. DNSStager will create a malic

Askar 547 Dec 20, 2022
The sequel to SquidNet. It has many of the previous features that were in the original script, however a lot of the functions that do not serve much functionality have been removed.

SquidNet2 The sequel to SquidNet. It has many of the previous features that were in the original script, however a lot of the functions that do not se

DrSquidX 5 Mar 25, 2022
CORS Bypass Proxy Cloud Function

CORS Bypass Proxy Cloud Function

Elayamani K 1 Oct 23, 2021
Search ports in multiples hosts

Search Port ✨ Multiples Searchs ✨ Create list hosts Create list targets Start Require Python 3.10.0+. python main.py Struture Function Directory load_

Tux#3634 7 Apr 29, 2022
A simple chat room using socket and threading for handle multiple connections.

• Socket Chat Room was a little project for socket study. It works with a server handling the incoming connections from the clients. Clients send encoded messages while waiting for others clients mes

Guilherme de Oliveira 2 Mar 03, 2022
With the use of this tool, you can change your MAC address

Akshat0404/MAC_CHANGER This tool has to be used on linux kernel. Now o

1 Jan 25, 2022
🥑 A Python ARP and DNS Spoofer CLI and INTERFACE 🥓

NEXTGEN SPOOFER 🥑 A Python ARP and DNS Spoofer CLI and INTERFACE 🥓 CLI - advanced pentesters INTERFACE - beginners SetUp Make sure you installed P

9 Dec 25, 2022
This is a top level socket library, making servers and clients EASY!

quick-net Sockets don't have to be a pain That's the motto this library was built with, and that's exactly what we made! This is a top-level socket li

Nate the great 15 Dec 17, 2021
Multiple-requests-poster - A tool to send multiple requests to a particular website written in Python

Multiple-requests-poster - A tool to send multiple requests to a particular website written in Python

RLX 2 Feb 14, 2022
Easy-to-use sync library for handy proxy parse

Proxy Parser About Synchronous library, for convenient and fast parsing of proxies from different sources. Uses Scrapy as a parser. At the moment the

Michael Mironov 2 Nov 22, 2022
Equibles Stocks API for Python

Equibles Stocks API for Python Requirements. Python 2.7 and 3.4+ Installation & Usage pip install If the python package is hosted on Github, you can i

Equibles 3 Apr 15, 2022
WARP+ uses Cloudflare’s virtual private backbone, known as Argo, to achieve higher speeds and ensure your connection is encrypted across the long haul of the Internet

WARP+ uses Cloudflare’s virtual private backbone, known as Argo, to achieve higher speeds and ensure your connection is encrypted across the long haul of the Internet

Rivane Rasetiansyah 3 Apr 01, 2022
Tiny Interactive File Transfer Application

TIFTA: Tiny Interactive File Transfer Application This repository holds all the source code, tests and documentation of the TIFTA software. The main g

Jorge Martínez 2 Dec 08, 2021