Projects / uterus


uterus is a codec library for financial tick data with an emphasis on market data integrity and maintainability. It comes with a set of tools to convert (mux) and print (demux) data from some sources, and to perform standard tasks like selecting instruments, creating snapshots and candles from tick data, etc. Special care is taken to provide longevity and consistence. All timestamps are internally converted to coordinated time, and price and quantity quotes are converted to a monetary datatype which doesn't suffer from rounding errors. Most importantly, meta data is stored along with the payload data in an inseparable unit, to provide self-contained and self-documenting files or network streams.

Operating Systems

Recent releases

  •  04 Mar 2014 10:00

    Release Notes: ute mux now sorts files larger than 80GB and reconciles symbol lookup tables when they don't coincide. ute info now supports --guess for candles with missing width fields. ute info supports --files to repeat the file names in the output, similar to grep -H. ute files can be opened in live mode so that streams can write to the file whilst other tools read from them at the same time.

    •  30 Apr 2013 15:41

      Release Notes: Bugfixes: ute info copes with opposite-endian files; ute shnot works for bidask ticks; and m30 and m62 readers work on numbers with rounding artefacts. Minor enhancements: ute info supports -i|--interval chunking; libuterus provides an iterator ute_iter(); and m30 and m62 readers and printers are outsourced into libuterus.

      •  15 Mar 2013 17:10

        Release Notes: Volume ticks can now have a candle type (vol + vwap + twap). uta muxer/printer now copes with any tick and candle type. The dukas --guess option no longer crashes. ute mux --into a non-existing file no longer crashes. compression via ute fsck -z will not mangle files anymore in the case where multiple files are given and the compressed size is 48 mod 64.

        •  20 Dec 2012 14:02

          Release Notes: This release provides lzma compression support (ute fsck --compress/--decompress), provides chandeller (ute chndl) to draw candles from tick or snap data, provides an info command (ute info) to get an overview of ute file contents, lets muxer and printer DSOs (modules) have muxer/printer-specific commandline options, gives the hdf5 printer a --matlab option to aid matlab importation, and lets the dukas muxer guess (via --guess) timeseries parameters (such as the symbol name or the reference date) from the filename.

          •  15 Aug 2012 11:22

            Release Notes: An endianness converter was provided in ute fsck (--little-endian|--big-endian). Tests now run on big-endian machines. m62 objects were made to coincide with m30s on any platform (i.e. big-endian m62 mantissa is split into 30bits + 2bits exponent + 32bits rest mantissa). The shared library is now installed. The missing ute_free() function was provided to close a context without flushing/resorting. Incorrect endianness is now converted on the fly in ute print. A UO_NO_CREAT_TPC open flag was provided to defer the creation of the scratch TPC page when opening files.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.