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