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.19.tar.gz
(45.2 kB
view hashes)
Built Distributions
Close
Hashes for sevent-0.4.19-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25e5b05592b67f517a756c39367b21494b34861e3111d0e54fb06cd301909d72 |
|
MD5 | fb08db9c87182679e805af8bab100d30 |
|
BLAKE2b-256 | cad9bc44ccb42c000bdb7aab08ed6efceea7474973d758564d55d9d20c652d11 |
Close
Hashes for sevent-0.4.19-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dcb4b1bd6c8a4f406ba640c7c1563384b7da513ac70b5a65645045402718dafe |
|
MD5 | 97f931adb9e23da58ffb20049f9b70f1 |
|
BLAKE2b-256 | eff7f76d20d99ef5ebcf5b5df92fa0d6b6ddbd0f1865239ad146b5c7d52bb2bd |
Close
Hashes for sevent-0.4.19-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cfa44fc0cbae49859587de40a3ae7e1ba2c1a1c8519fcc18ade57680428d3d4 |
|
MD5 | 8db74b0cbbe21e45df44a54fe745ce37 |
|
BLAKE2b-256 | bd76ea90332d0413ba904dac1fd1a591e7c5f01abbe7e1997edeadda6bfa29d0 |
Close
Hashes for sevent-0.4.19-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 231dd1e683d8040742ceb8571cd0dfe6cb5b1b22ea35f0aa1c4231129b00332b |
|
MD5 | ebfda4254f5b54b2fad1f5ba43ab76c6 |
|
BLAKE2b-256 | f52a8beffe7ad9791d7c3705c4f4d97a4589232a2a9822ba21d77daae42b0230 |
Close
Hashes for sevent-0.4.19-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34628a8e19e51de18d0960cd5dae3002a8ef22299036067d276b0697b3143549 |
|
MD5 | 28081f736ccf4adca24ee1acc7d0be4d |
|
BLAKE2b-256 | cbe08a64a36ff3e748fd059efa873d131f6555ccbf95f25b155cc651294a3c5f |