views:

41

answers:

3

Hi,

are there open source libraries implementing the fast infoset or the .net binary compression format? I'd need them for C, C++ and C# (including support for the .net framework, I'm not sure it natively supports the binary compression). The final goal is that of compressing xml files with a fast algorithm available for a wide range of platforms (including embedded environment); hence, any suggestion would be appreciated

A: 

If you're looking for freely available compression libraries supporting a wide variety of platforms, there are libbzip2, gzip, and lzma (7zip).

Nathon
He's specifically asking about "fast infoset" which is a binary serialization format for XML not about compression libraries in general.
bradgonesurfing
@bradgonesurfing: Read his last sentence.
Nathon
The difference between Fast Infoset/other binary XML serializers and plain old text compression is that they are fast because they are a binary model of the XML not just a compressed version of the text file. If you just use gzip on top of the XML text you still have to parse the text which in an embedded environment can be much slower than the equivalent binary serialization.
bradgonesurfing
Ah, good to know.
Nathon
+1  A: 

The only open source Fast Infoset implementation is the one by Sun. This is the one being used by all Java vendors.

There are several C, C++ and C# implementations (incl for .NET/CF/SL) but they are all commercial. You might be able to get pricing/licensing terms that are suitable to your project if you contact the vendors and explain what you are doing.

Note to Nathan:

Fast Infoset is an encoding of the XML Infoset. It is not a compression algorithm. GZIP, LZMA etc can be used to compress Fast Infoset, in the same way that they can be used to compress text XML or any other encoding. However GZIP, LZMA etc cannot be used to represent an XML Infoset.

Alexander Philippou
+1  A: 

Do you need specifically "Fast InfoSet"? Or would any binary serialization of XML do? We use

http://www.codesynthesis.com/products/xsd/

at work. It is dual GPL / Commerical licenced. The binary serialization is not hard to get working and we use it to push XML in and out of our database without having to use xerces to reparse the text all the time.

bradgonesurfing
I would prefer Fast Infoset because it is a standard. Furthermore, I need implementations for all C, C++ and C# languages.
fra
I don't think you will find a C++ free implementation of Fast Infoset then. If it were available then Applied Informatics wouldn't be charging over $2000 for a site license to use their library which isn't even dual licensed GPL / commercial. http://www.appinf.com/en/products/fis.html
bradgonesurfing