Tools for connecting C++ and Python
The PicklingTools comes as a tarball of Python and C++ and Java source code. Click on one of the links below to download the necessary version of PicklingTools.
July 31st, 2015:
1.5.4 is the latest release. Mostly minor bug fixes to have the shared memory tools work better.
1.5.3 features a bunch of bug fixes, plus better error messages if you mix DUAL SOCKET and SINGLE SOCKET code.
1.5.2. It features a bunch of small bug fixes, plus the introduction of the new Python seriallib which allows conversion back and forth between Python dictionaties and Windows INI fles and key-value lines.
1.5.1. Complete the transition to NumPy (from Numeric), fix documentaton spelling errors, move some timeout code from MidasTalker to MidasSocket (so MidasServer can access the send code with the timeout), rejiggered C++ baseline to work with -Wextra.
1.5.0. It is first release to handle Java support. Currently, there is support to write a Java client that can pickle and unpickle, but no server (coming later). There is support for textual Python dictionaries (from strings and files) as well as binary (pickled) format. Support is limited to Python 2.X series.
1.4.2 is a quick bug-fix release: it allows Jython to work with a Python MidasTalker (select bug fixed) and the Python C extension module to build with 2.6 and 2.7 versions of Python.
PicklingTools 1.4.1: Up until now, the XML to dict and dict to XML conversion tools were written either in Pure Python or pure C++. The pure Python routines were significantly slower (10x-100x) slower than their C++ counterparts. To battle this problem, we created the "cxmltools" module which wraps the C++ routines so they can be called from Python (and get the massive speedup!). We also cleaned up the arbitrary sized int interfaces: they were clumsy and needed a little more polish (see the CHANGES log for more discussion of some of the cleanup).
PicklingToolsis 1.4.0. The cross-process shared memory tools have been updated, with better documentation and testing. Currently one major application is using the shared memory pipes in a real-world production system. The XMLtools have also been updated to work with numpy.
Version 1.3.4 adds some minor M2k updates.
Version 1.3.3 adds a simple schema-like mechanism for validating dictionaries are well-formed, as well as some bug and performance fixes.
Version 1.3.2 added JSON support, NumPy support, and tools to write HTTP servers and clients.
Versions 1.3.0 and 1.3.1 concentrated on getting XML conversion tools available.
"Do souls look like pickles?" - Spongebob Squarepants
Version 0.71: Clean up
version 0.70: Dual-socket mode support
Version 0.40: ..too old...
Full CHANGE log
If you wish to see the entire CHANGES file (included in the PicklingTools distribution at the top-level), click HERE. This show all changes that up to the current release.
Changes in the first number (from release 0.96 to 1.00 for example) indicate major releases with possible incompatibilities. In general, though, the PicklingTools strives to be backwards compatible with previous releases. [Even the 1.00 release was released to some beta users to make sure it compiled and worked with their previous systems. The few incompatibilities were documented].