Skip to main content

lightweight event loop

Project description

sevent

The highest performance event loop.

Examples

Simple Http Client

import sevent

def on_data(s, data):
    print(data.decode("utf-8"))

s = sevent.tcp.Socket()
s.on_data(on_data)
s.on_close(lambda s: sevent.current().stop())
s.connect(('www.google.com', 80))
s.write(b'GET / HTTP/1.1\r\nHost: www.google.com\r\nConnection: Close\r\nUser-Agent: curl/7.58.0\r\nAccept: */*\r\n\r\n')

sevent.instance().start()
import sevent

async def http_test():
    s = sevent.tcp.Socket()
    await s.connectof(('www.google.com', 80))
    await s.send(b'GET / HTTP/1.1\r\nHost: www.google.com\r\nConnection: Close\r\nUser-Agent: curl/7.58.0\r\nAccept: */*\r\n\r\n')

    data = b''
    while True:
        try:
            data += (await s.recv()).read()
        except sevent.tcp.SocketClosed:
            break
    print(data.decode("utf-8"))
    await s.closeof()

sevent.run(http_test)

Simple TCP Port Forward

import sys
import sevent

def on_connection(server, conn):
    pconn = sevent.tcp.Socket()
    pconn.connect((sys.argv[2], int(sys.argv[3])))
    conn.link(pconn)

server = sevent.tcp.Server()
server.on_connection(on_connection)
server.listen(("0.0.0.0", int(sys.argv[1])))
sevent.instance().start()
import sys
import sevent

async def tcp_port_forward_server():
    server = sevent.tcp.Server()
    server.listen(("0.0.0.0", int(sys.argv[1])))

    while True:
        conn = await server.accept()
        pconn = sevent.tcp.Socket()
        pconn.connect((sys.argv[2], int(sys.argv[3])))
        conn.link(pconn)

sevent.run(tcp_port_forward_server)

License

sevent uses the MIT license, see LICENSE file for the details.

Project details


Download files

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

Source Distribution

sevent-0.4.29.tar.gz (48.9 kB view details)

Uploaded Source

Built Distributions

sevent-0.4.29-cp313-cp313-win_amd64.whl (77.3 kB view details)

Uploaded CPython 3.13 Windows x86-64

sevent-0.4.29-cp312-cp312-win_amd64.whl (77.3 kB view details)

Uploaded CPython 3.12 Windows x86-64

sevent-0.4.29-cp311-cp311-win_amd64.whl (77.1 kB view details)

Uploaded CPython 3.11 Windows x86-64

sevent-0.4.29-cp310-cp310-win_amd64.whl (77.1 kB view details)

Uploaded CPython 3.10 Windows x86-64

sevent-0.4.29-cp39-cp39-win_amd64.whl (77.3 kB view details)

Uploaded CPython 3.9 Windows x86-64

sevent-0.4.29-cp38-cp38-win_amd64.whl (77.5 kB view details)

Uploaded CPython 3.8 Windows x86-64

File details

Details for the file sevent-0.4.29.tar.gz.

File metadata

  • Download URL: sevent-0.4.29.tar.gz
  • Upload date:
  • Size: 48.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for sevent-0.4.29.tar.gz
Algorithm Hash digest
SHA256 4d380777acce1d1341afb29b48b531fa3e4272f45f2ff57b317c693705a640c4
MD5 ac805c76f44339d961dd248f6c41cc7d
BLAKE2b-256 582a1234d031ddd25c04a3fe917e60fa3aa7bea8e6ece0bd60f06f84326f7832

See more details on using hashes here.

File details

Details for the file sevent-0.4.29-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: sevent-0.4.29-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 77.3 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for sevent-0.4.29-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9a9653a4ffe07cb2d14c2581320e1220d6363277a6ddb66a690d9179f9927936
MD5 397b82ba66fb64617fb582abdd6bf44e
BLAKE2b-256 84004dd3250596dbf51378cfffcbbfcb9a692c8c301063a8a524540f9122cdfa

See more details on using hashes here.

File details

Details for the file sevent-0.4.29-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: sevent-0.4.29-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 77.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for sevent-0.4.29-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 09504090efc1ac3bd7c8d1726bba77cda76519ab5f1405f6edb20c2a328fb855
MD5 f0f79e01ecee8d16a319308253ed7841
BLAKE2b-256 0e2001967cbc1419b25fec189bfb5e79baa271b837cfe72c37ec97a257b5b33a

See more details on using hashes here.

File details

Details for the file sevent-0.4.29-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: sevent-0.4.29-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 77.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for sevent-0.4.29-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0d4fb9c8b8ebb4b85c266b31b69a8a73278d0dac646f2b52a7d6d67a889e1a87
MD5 c2a4eb65073d52b1f705e29151dd69a6
BLAKE2b-256 19975dadbc278990da0b06311975fa40fd7a7e6cdf97b3507129c70373373fde

See more details on using hashes here.

File details

Details for the file sevent-0.4.29-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: sevent-0.4.29-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 77.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for sevent-0.4.29-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 68ee220cbe7dd38b84dad105eedf50c907c16d7dff372ca53b918805584caaf9
MD5 e6c575b88a92d99dd3642688396c1c3e
BLAKE2b-256 f925cc8a8ab39553cb7c9c773054a7a3b1c9d08fd189a300b364f2311fb3b8ed

See more details on using hashes here.

File details

Details for the file sevent-0.4.29-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: sevent-0.4.29-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 77.3 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for sevent-0.4.29-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2e6ac9aab38a14760e79e6febc5be425c3c5a1eb5ebba52bf12050a9e86d5413
MD5 e4523a7fbc4862b3715a0ba297a954bf
BLAKE2b-256 6f02fbd616507db7c28650dcdb7559f55f75015fb61f8103ee0ef14a7db2b2f2

See more details on using hashes here.

File details

Details for the file sevent-0.4.29-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: sevent-0.4.29-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 77.5 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for sevent-0.4.29-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 653d20bcf72a6d8a1e820754d768c4daa3c4517f670dd2ade90a15df1feba6a2
MD5 973a43f469b99a01dbf65d42f0b32ef7
BLAKE2b-256 9453ac3d3b055050df0b82d2e5c9d15c4cab96744190c4d7178594d3086150f9

See more details on using hashes here.

Supported by

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