fwiw, rgd Autobahn, the one transport which is missing and I am interested in is: VirtIO

VirtIO would allow zero-copy, not only single-copy - which is already available in Posix via UDS.



to make that a bit more concrete, how could we implement an Autobahn transport for WebSocket - that is an implementation of

autobahn.websocket.interfaces.IWebSocketChannel

running over VirtIO and using virtqueues, and using epoll for event integration.

does Python have proper wrappers for Linux VirtIO / virtqueues already?

integrated with epoll in Python?

implemented in CPython and in PyPy?

if so, let's do it;)

I could have my Rust code talk to Python with zero-copy (at least on the Rust side) - and using WebSocket as proper/standard message framing

the one aspect I am not sure about: WebSocket provides framing .. as it runs over a byte level transport .. and for WAMP, we wouldn't need that as VirtIO already is message based.

if we would go down that road, it'll means providing an implementation of

autobahn.wamp.interfaces.ITransport

https://github.com/crossbario/autobahn-python/blob/f38f16ba28fa253dee951068cc729089c88d857d/autobahn/wamp/interfaces.py#L220

for VirtIO / virtqueues.

anyways, I don't really think it matters much performance wise. I can shift out bytes into memory up to maximum main memory bandwidth limited by hardware in Rust easily, and "almost" in PyPy, but still ..

_______________________________________________
Twisted mailing list -- twisted@python.org
To unsubscribe send an email to twisted-le...@python.org
https://mail.python.org/mailman3/lists/twisted.python.org/
Message archived at 
https://mail.python.org/archives/list/twisted@python.org/message/A2RN7LS5KFMLNQSNTE7CUQFW3Q34EAMV/
Code of Conduct: https://twisted.org/conduct

Reply via email to