ANN: Fusion v0.2, C++ integration for Twisted
Fusion is a library that supports implementing protocols in C++ for use with Twisted, allowing control over memory allocation strategies, fast method calls internally, etc.. Fusion supports TCP, UDP and multicast, and is implemented using the Boost.Python python bindings. Fusion has only been tested on Linux - Debian GNU/Linux with gcc 3.3 on PowerPC and Redhat 7.3 with gcc 2.96 on x86. Fusion is licensed under the MIT license, and available for download from http://itamarst.org/software/fusion-0.2.tar.gz Features supported in v0.2: 1. Scheduling functions with the twisted event loop from C++ (callLater and LoopingCall). 2. Support for implementing C++ UDP and multicast protocols. 3. Support for implementing C++ TCP protocols (client and server), with a zero-copy buffering layer written in C++. Protocols implemented in Python can also use this custom buffering layer. There are two write APIs, one accepting a functor/function that writes to a buffer allocated by Fusion, and the other accepting a shared_ptr that points at an instance that owns a buffer. ** WARNING ** Writing networking code in C++ can lead to buffer overflows and other unpleasant security problems. Stick to pure Python unless you have no other choice and know what you're doing. Don't assume I know what I'm doing, either - bug reports are more than welcome :)
Itamar Shtull-Trauring wrote:
Fusion is a library that supports implementing protocols in C++ for use with Twisted, allowing control over memory allocation strategies, fast method calls internally, etc.. Fusion supports TCP, UDP and multicast, and is implemented using the Boost.Python python bindings.
Hey, cool! I'll add it to the Boost.Python projects page! -- Dave Abrahams Boost Consulting http://www.boost-consulting.com
participants (2)
-
David Abrahams -
Itamar Shtull-Trauring