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.37.tar.gz (51.5 kB view details)

Uploaded Source

Built Distributions

sevent-0.4.37-cp313-cp313-win_amd64.whl (79.3 kB view details)

Uploaded CPython 3.13Windows x86-64

sevent-0.4.37-cp312-cp312-win_amd64.whl (79.3 kB view details)

Uploaded CPython 3.12Windows x86-64

sevent-0.4.37-cp311-cp311-win_amd64.whl (79.1 kB view details)

Uploaded CPython 3.11Windows x86-64

sevent-0.4.37-cp310-cp310-win_amd64.whl (79.1 kB view details)

Uploaded CPython 3.10Windows x86-64

sevent-0.4.37-cp39-cp39-win_amd64.whl (79.4 kB view details)

Uploaded CPython 3.9Windows x86-64

sevent-0.4.37-cp38-cp38-win_amd64.whl (79.6 kB view details)

Uploaded CPython 3.8Windows x86-64

File details

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

File metadata

  • Download URL: sevent-0.4.37.tar.gz
  • Upload date:
  • Size: 51.5 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.37.tar.gz
Algorithm Hash digest
SHA256 4179f18a41da35182b7e054222edc10e979163e75531867240062992123456de
MD5 c524be23564c11a1c4ef261debfe92bf
BLAKE2b-256 3d381027117371f8b735a8727a9e9b20217f5a4048f9f4b50c48df9d42027fd4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sevent-0.4.37-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 79.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.37-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2c3084cde04d875c0b985ec2280d7b89626eb5ef9e4b10a42eef21d81e6576de
MD5 612618058758d9b6208f2002a1bd2eaf
BLAKE2b-256 baf9e9fa5129cb9b328f7bb1a7cc48c3a4937e1132049760d592fbcefd94c8f1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sevent-0.4.37-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 79.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.37-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a0e1115f3856aff0e2e88a57247b24a7fa69c5a199fe3c56910de988fda6bb0b
MD5 b57aa47ed05a439fb4fc88528bdcb41c
BLAKE2b-256 2d2becc0c1cdd77e33f4e55799e74c02f4b6bc1dd209ab4d8608c221315cb71b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sevent-0.4.37-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 79.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.37-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1d4bd967b222c8def8776e3f3fd08151bc488cbf639faad9c0dcd05787dbbae9
MD5 afec93271418cef405937122255fb883
BLAKE2b-256 95f8b91c6494be71e87e47cb7d767daf111b64c488a2fba836f199f7b26c352f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sevent-0.4.37-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 79.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.37-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 63028a6226c35f1cfe409a0d5542501a07b12f68efe6af7132413b8ea5583724
MD5 1469e282a62a64dfff04d9694601b516
BLAKE2b-256 625f5adbfea4ef3c48035c3b7bdf9b0a5d0ab90357924bec5d40f95fda4b98b2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sevent-0.4.37-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 79.4 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.37-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b86725597c86ec73af9684bdf96b1d557b1928ce7250fba4cb7b9ae4f8c5dd4f
MD5 2fd91e9ab23e94cd464ce0d5c3522c78
BLAKE2b-256 eb7e1956a3135018164800b0e0b54ef190d51aaea8633a4d465d6779e55aa397

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sevent-0.4.37-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 79.6 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.37-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8f0b843885f0be142cf392fcbe17b0790446b95addc1b76ba3a4a61999ca1de1
MD5 cbf8209913eaef7b2e08af41baff0748
BLAKE2b-256 9cb93b6ff99986dd53387aa91f0c6065c18f1fec640a276b568ff32351e9e828

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