C#/.NET: In need of a few (de)compression libraries - c#

My Google-Fu seems to be weak today. I've so far been able to find libraries for ZLib and BZip2 (SharpZipLib), and LZMA (7-Zip), but not Huffman, IMA ADPCM, and SPARSE.
Does anyone know of any pure .NET libraries that can handle these compression methods?
Thanks!

I've found this for Huffman...

Related

How to read PLC (RFC1006) data with .NET

I'm looking for a good way of reading PLC-Data. I found this right here: https://github.com/killnine/s7netplus
Unfortunately this works for siemens plc only. I looked a while for another library, but could not find the right one. Any ideas?
Thanks in advance =)
Best regards,
Zuendi
You can use AdvancedHMI which is a .NET solution. It has a range of communication drivers for various PLCs such as Allen Bradley, Beckhoff, Omron, Modbus, etc.
Your question is pretty vague as is, however the closest thing you’re going to get to a universal interface to all PLCs is probably OPC-UA. Several major PLC vendors support this out of the box (Siemens S1500, Beckhoff TwinCAT, others) and many others supply server-side software that translates the PLC’s proprietary protocol into OPC-UA.
There is a fairly complete .net implementation of OPC-UA.
http://opcfoundation.github.io/UA-.NETStandard/

zlib.h versus zlib.net

I have made a compression in c/c++ (NO UNDER THE CLR) using the library zlib.h, and it works great. the functions that I use deflate() and inflate().
Now the file compressed by the c application, I want to decompress it with the zlib.net application, using c#, but I do not manage to get it working. When trying to decompress it, I get the error of the magic number, a number used by an specific application in the header. Does anyone know how to get through this problem, or if someone can give me an example of the inflate()/deflate() functionality in .net
for more info on how I have done my compression, is similar to the one in the link http://www.zlib.net/zlib_how.html
Also, can any one advice me of a good lib to perform compression in both c++ and .net,
Many thanks in advance...
There's some discussion on this here: Zlib-compatible compression streams?
I think Boost may work with zlib to add the header information: http://www.boost.org/doc/libs/1_36_0/libs/iostreams/doc/classes/gzip.html

Forward error correction in .NET

Are there any libraries (paid or free, though free is obviously better) that provide forward error correction for .NET applications? I've tried looking through the source code of some of the open source C / C++ libraries, but quite frankly, the math is confusing and my inability to read other peoples' C code with any reasonable level of clarity is a major road block.
If you have free C++ libraries why don't you try to build CLI wrapper around them?
Forward Error Correction is for instance used in media streaming.
A quick google search on "forward error correction" does not reveal much, but you could go another way:
Compile the C/C++ implementation (for instance from the list on Christian Schuler's Forward Error Correction (FEC) Page) of your choice into a DLL, then use P/Invoke to call functions in that DLL.
Another option that might fit you is to use the .NET interface to the Windows Media Services 9 series.
It contains the IWMSPublishingPoint interface that has a EnableFEC property.
--jeroen
Have you looked at the PAR2 format specification? PAR2 files provide raid-like parity for downloaded files (mostly popular on usenet binary groups). Although PAR2 is probably the wrong granularity for you, you should be able to change that once you know how it works.
I found a free library on github (made by antiduh):
https://github.com/antiduh/ErrorCorrection
As it said:
A library to implement Reed-Solomon encoding. Reed Solomon is a method of encoding data with extra error correction information built in, so that errors in received data can be corrected without having to retransmit the data; this technique is also known as Forward Error Correction (FEC).

What is the best way to generate KML files in C#?

What is the best way to generate KML files using C#?
Is there a class library that I can use? I have looked and struggled to find anything interesting.
libkml doesn't have a C# implementation or wrapper.
Any help would be great.
SharpKML - library based on Google's C++ implementation of libkml
Here are ​​​​​​​​​​​​​​​​some:
http://code.google.com/p/kml-library/
http://www.codeproject.com/KB/cs/Google_Earth_KML_Files.aspx
http://gekml.boseefus.com/

DeflateStream 4GB Limit in .NET

From MSDN: DeflateStream Class
DeflateStream cannot be used to compress files larger than 4 GB.
Are there any other implementations for .NET without the 4 GB limit?
NOTE: I really need to decompress a file in GZ format with content larger than 4 GB. Can any code do that?
FYI, we have removed the 4 GB limit from DeflateStream in .NET 4.
There is sample code at CodeProject using the 7-Zip library.
The license is open, so you should be able to use this in your project.
7-Zip also supports GZ files.
Take a look at SharpZipLib. Not sure if it's subject to the same limitation, but worth a look.
Look for libraries that support DEFLATE64 (not Zip64, that's an extension to the ZIP file format). Xceed Zip for .NET does support Deflate64, and I'm sure others do too.
Having a look around, it seems a lot of people have encountered this problem.
System.IO.Compressio.DeflateStream clarifications please seems to be the most comprehensive.
The only implementation I was able to find that seems to overcome this problem by using Zip64 is
Xceed Zip for .NET.
However, it is very expensive and I am not sure if it would suite your needs.
Edit:
There does seem to be quite a number of implementations of Zip64 for .NET, but I can't find any that are free.
DotNetZip does ZIP64 for .NET, and it is free. But Zip64 is not the same as Deflate64.
Although that documentation says the 4GB limitation is for both the DeflateStream and GZipStream, only GZipStream is limited because of the CRC32 checksum. If you do not need CRC32 then use DeflateStream.

Categories

Resources