The DSI utilities are a mish mash of classes accumulated during the last ten years in projects developed at the former DSI (Dipartimento di Scienze dell'Informazione, i.e., Information Sciences Department), now DI (Dipartimento di Informatica, i.e., Informatics Department) of the Università degli Studi di Milano. They were originally distributed in several projects (mainly in MG4J) but we finally decided to gather all the material in a single place.
The DSI utilities are free software distributed under either the GNU Lesser General Public License 2.1+ or the Apache Software License 2.0.
Highlights
The implementations available are a bit eclectic due to the particular kind of applications we developed. Very broadly, we have:
- Implementations of pseudorandom number generators. See the package documentation for details.
BitVector
and its implementations—a high-performance but flexible set of bit vector classes.- A
it.unimi.dsi.compression
package containing codecs for several types of encodings. ProgressLogger
, a flexible logger with statistics marking the progress of the (many) classes we use that require hours of computation.ObjectParser
, a class making it easy to specify complex objects on the command line.MutableString
, our answer to the JavaString
class.- The
I/O package
, containing fast version of several classes existing injava.io
, many useful classes to read easily text data (e.g.,FileLinesMutableStringIterable
), bit streams, classes providing large-size memory mapping such asByteBufferInputStream
, andOfflineIterable
—the easy & fast way to store large sequences of objects on disk and iterate on them. - The
it.unimi.dsi.util
package, containing tries, immutable prefix maps, Bloom filters, a very comfortableProperties
class and more. - The
it.unimi.dsi.stat
package, containing a lightweight class for computing basic statistics and an arbitrary-precision implementation of the Jackknife method. - Lots of utility methods in
Util
(have a look!) MappedFrontCodedStringBigList
, which provides compact memory-mapped storage of strings, possibly with some compression.- Big versions of I/O and utility classes in
it.unimi.dsi.big.io
andit.unimi.dsi.big.util
.
BulletParser