Hello all,

I would like to announce version 0.3 of my Data.CompactString library. Data.CompactString is a wrapper around Data.ByteString that represents a Unicode string. This new version supports different encodings, as can be seen from the data type:

> data Encoding a => CompactString a

Currently the following encodings are supported:
 - UTF-8, UTF-16 and UTF-32 (both big and little endian)
 - ASCII
 - ISO-8859-1 (latin1)
 - A custom compact encoding

Conversion between different encodings, and between CompactStrings and ByteStrings is possible. There are also functions to automatically detect the encoding of files based on a byte order mark. Just this part of CompactString could be used as an encoding library for ByteStrings.

In addition to overloaded functions like
> length :: Encoding a => CompactString a -> Int,
there are also modules Data.CompactString.UTF8, Data.CompactString.UTF16, etc. which are restricted to a single encoding:
> length :: CompactString UTF8 -> Int
I expect that these will be more useful in most cases.

The library is now feature complete, but it has not been optimized yet. There are also some problems with I/O functions, since it is difficult to determine what kind of encoding should be used given a Handle.

Homepage:  http://twan.home.fmf.nl/compact-string/
Haddock:   http://twan.home.fmf.nl/compact-string/doc/html/
Source:    darcs get http://twan.home.fmf.nl/repos/compact-string

Twan van Laarhoven

_______________________________________________
Haskell mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to