[Ironruby-core] zlib implementation

John Lam (CLR) jflam at microsoft.com
Wed Sep 12 21:47:42 EDT 2007

After looking a bit more closely at System.IO.Compression, I think it actually gives us most of what we need.

So in order of preference:

1)      System.IO.Compression (we still have to solve the Silverlight problem since I just looked and saw that it doesn't ship in Silverlight).

2)      Component ACE zlib.net - I like the BSD style license - it will be easier to make a case for this.


From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Eric Nicholson
Sent: Wednesday, September 12, 2007 6:21 PM
To: ironruby-core at rubyforge.org
Subject: Re: [Ironruby-core] zlib implementation

Just to make sure we're all on the same page in terms of zip libraries (there are at least three you could refer to as "zlib.net<http://zlib.net>"), here's a summary:

ZLIB - www.zlib.net<http://www.zlib.net>
The original zlib, used by gzip.  BSD style license.

Component Ace's ZLIB.NET<http://ZLIB.NET> - http://www.componentace.com/zlib_.NET.htm
Port of zlib to 100% managed .NET. BSD style license ( http://www.componentace.com/data/ZLIB_.NET/license.txt)

SharpDevelop's SharpZipLib - http://www.icsharpcode.net/OpenSource/SharpZipLib/
"Zip, GZip, Tar and BZip2 library written entirely in C#". GPL License with an exception

System.IO.Compression - http://msdn2.microsoft.com/en-us/library/system.io.compression.aspx
"Provides basic compression and decompression services for streams." it's already in the framework

Feel free to add to the list...

It's hard to tell which one is the most likely to be compatible with Ruby's ZLIB.  If non-managed dependency is acceptable, real ZLIB is decent choice.  If you want managed, then the Component ACE ZLIB.NET<http://ZLIB.NET> would be a reasonable approach.

On 9/12/07, M. David Peterson < m.david at xmlhacker.com<mailto:m.david at xmlhacker.com>> wrote:
On Wed, 12 Sep 2007 18:02:56 -0600, John Lam (CLR) < jflam at microsoft.com<mailto:jflam at microsoft.com>>

> I think we'll wind up redistributing the compiled binary of zlib.net<http://zlib.net>
> with IronRuby with a multiple license agreement. We need to run this
> past the lawyers, but I'm pretty confident that shipping a BSD licensed
> component alongside of our MsPL code should be OK. Worst case we get
> someone in the community a'la Curt Hibbs to help us package this stuff
> up J

@ http://www.icsharpcode.net/OpenSource/SharpZipLib/

#ziplib (SharpZipLib, formerly NZipLib) is a Zip, GZip, Tar and BZip2
library written entirely in C# for the .NET platform. It is implemented as
an assembly (installable in the GAC), and thus can easily be incorporated
into other projects (in any .NET language). The creator of #ziplib put it
this way: "I've ported the zip library over to C# because I needed
gzip/zip compression and I didn't want to use libzip.dll or something like
this. I want all in pure C#."

The library is released under the GPL with the following exception:

Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole combination.

As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent modules,
and to copy and distribute the resulting executable under terms of your
choice, provided that you also meet, for each linked independent module,
the terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library. If
you modify this library, you may extend this exception to your version of
the library, but you are not obligated to do so. If you do not wish to do
so, delete this exception statement from your version.

Note The exception is changed to reflect the latest GNU Classpath
exception. Older versions of #ziplib did have another exception, but the
new one is clearer and it doesn't break compatibility with the old one.

Bottom line In plain English this means you can use this library in
commercial closed-source applications.


M. David Peterson
http://mdavid.name | http://www.oreillynet.com/pub/au/2354 |

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/ironruby-core/attachments/20070912/feec4a9e/attachment.html 

More information about the Ironruby-core mailing list