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.22.tar.gz
(45.9 kB
view hashes)
Built Distributions
Close
Hashes for sevent-0.4.22-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c7535facda2311129ba43e8e64207dcd34bb9d11c3f05866ecb682e52871a92 |
|
MD5 | e09e9ba523890cbe3f65cfbf0053f76a |
|
BLAKE2b-256 | e27d5f7dbc23da4b0b0ae66c562159fa8bec706f9f1c3f64ae6fa7387e8ccd29 |
Close
Hashes for sevent-0.4.22-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dbc49d8e9fa02dfef8630185be7fc05c0c1445d92d52772e076c38369851053c |
|
MD5 | 04e83dadd064c863d149db6e1fb4cab6 |
|
BLAKE2b-256 | 3f8652704777c5ca8b45c2a1cc388402bc9616ce1cbedcfd94f32148eebbd493 |
Close
Hashes for sevent-0.4.22-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f45a1b40104fa14f1f056e51c42425730a6d67affa058a4e04324687475c3ec6 |
|
MD5 | e601683a6f2a1dc8ba7d78c433b02cd5 |
|
BLAKE2b-256 | f3be45dcaa29e47dca43b4bcd1e591faea3f026c70fe88462ee2a515f58f514f |
Close
Hashes for sevent-0.4.22-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d01559abc4a342935973613036ebf99ef07d7ec98005dcb15dc7e3a218f0fbf |
|
MD5 | a219feb5073eb5082a49db9085793d46 |
|
BLAKE2b-256 | d301332e41dbd290b8af9a7979ede63bdd75f36e37f33e0300766c5ec55f37ae |
Close
Hashes for sevent-0.4.22-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87423f74797e8b5d1ca132ec0aee9827898865c523c7212fe4725711f94962ec |
|
MD5 | 050193151363ce0d61e4c619d12d0a6e |
|
BLAKE2b-256 | 92022c7052606581246f2e7d0c2319971dd223ab5a304f76fda83bd8f187fcef |
Close
Hashes for sevent-0.4.22-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66920cf608d8a56edb069d2879a70aa43d545b8752b8125ae6cccbe4e6c4770f |
|
MD5 | c18aa788497354eccffbe249ee5e3ba6 |
|
BLAKE2b-256 | 0255d627a0bbd6c29bc54fc049ac85a4a5076777aec33b332625f5e3046b7a18 |