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
Release history Release notifications | RSS feed
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.17.tar.gz
(44.4 kB
view hashes)
Built Distributions
Close
Hashes for sevent-0.4.17-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d23337b0b9633e894d9bb6d546bf2a695b7709f1a298e955f0befd76e5644c4d |
|
MD5 | 4c68432f02403aeffa8d33c6214cc902 |
|
BLAKE2b-256 | 7b4995bbd04a1537b45fd4da822f0bcbf461a95dca76d1c487d02315080085d4 |
Close
Hashes for sevent-0.4.17-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 826aa7e03167ded6a50502c51dc4e223fa5b64f89dd671c73fe61167f1dc6340 |
|
MD5 | c237463b1f91e8188d9a5e355d9b88a1 |
|
BLAKE2b-256 | 3562fb0dbadccf84312b2d420b43ac61e7046ea76e6cf514fdb61773be305081 |
Close
Hashes for sevent-0.4.17-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de15d4ae98e188d0bab5647949079d681e78a97e1ced67fe68d12fa7782fd584 |
|
MD5 | bd51c2e7bda97775964c3f179d5ae0d2 |
|
BLAKE2b-256 | 5b45f24bb899e27b36fcdaf98ccdeb19693b6a5f9d5d322a63f3f752a4f7486e |
Close
Hashes for sevent-0.4.17-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90bdf3f5d1bdaed2d0152b0b345ada81ef4c8d038024cd5d989145f0ba64b267 |
|
MD5 | c92649f34ecd9ba539075f0621114139 |
|
BLAKE2b-256 | 2fe62ed208904c894e93cf5d72df068b464410ba2384bc0b64144a6075a4fe3f |
Close
Hashes for sevent-0.4.17-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75bdcad47f44f4207227344d44f52230badc33500d14af6ccd609ec431d4f03b |
|
MD5 | c575c96d0e558a843aa575fba93a0d19 |
|
BLAKE2b-256 | 52e682605d3430fa7e8166a02965687bde186883460bd1431527df42b61c29f8 |
Close
Hashes for sevent-0.4.17-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c25a7e53e0d910e2bf104d81fc69525dfc7af9ec6be53e211b77fed24967be51 |
|
MD5 | b8bf9661676694396292681e5649433f |
|
BLAKE2b-256 | 202cddbad493c09b0f7e0a8e85356b70978f58cfbb890d4b85adbad70f21c82f |