This project is read-only.

Mac OS X? with Mono? And Linux too?

Feb 22, 2010 at 8:39 AM

Has anyone tried SevenZipSharp on Mac OS X, with Mono?

I know there must be some form of 7z support on Mac OS, and Linux too.  I'm hoping to find an easy cross-platform solution, using C# and Mono.

I'm hoping I just have to like get a mac version of 7z.dll?  Then SevenZipSharp can run on Mono and talk to that file?

thank you for any leads


Feb 23, 2010 at 6:45 AM

I tried it today (on Mac OS X with Mono), referencing the Windows 7z.dll and of course it didn't work.

7-zip-jbindings for Java works on Mac OS X, so I'm a little disappointed.  I was hoping SevenZipSharp would be like a C# equivalent of 7-zip-jbidings.  But what about Mac OS X support (via Mono)?  Any leads on what I can do for that?  I want to extract the archive files directly into memory.


Feb 24, 2010 at 5:03 AM

SevenZipSharp uses COM, which is a Windows-only and will always be only technology. This is the price for unmanaged compression/extraction speed. The only way for you is to use wine.

Feb 24, 2010 at 10:48 PM

thank you for the explanation

7-zip-jbindings for Java wraps native compression/extraction for a Java cross-platform (Windows, Mac, Linux) library (7-zip for Windows, p7zip for Mac/Linux).  This allows you to read files from an archive (7z, rar, zip, etc) directly into memory.  However, it compiles with the 7-zip/p7zip source code, rather than just external COM interface.

It seems that it would also be possible to do that for C#/.NET too, via Mono...  But, sounds like that would be a bigger project than SevenZipSharp.


Feb 25, 2010 at 5:09 AM

The point is, I don't know about how fast 7-zip-jbindings on JRE are, but even my own die-hard managed LZMA implementation is at least twice slower than 7-zip 4.65. The reason of cross-compatibility seems not enough to begin developing totally managed 7-zip, since most of .NET users use Windows and only care for speed.


Feb 25, 2010 at 7:21 AM

thank you for the reply

Unless I missed something, 7-zip-jbindings doesn't implement anything in Java/JRE, except the wrapper/bridge.  So the heart (the compression / decompression) is still the optimized C++ native code (7-zip for Windows, p7zip for Linux/Mac) (.dll for Windows, .so for Linux/Mac).  Only wrapper code is written in Java/JRE - not compression / decrompression.

Here's a quote from the 7-zip-jbindings home page: "The 7-Zip-JBinding consists of two parts: the java part and the native part. The java part introduces a cross-platform java interface of the 7-Zip library. The native part of 7-Zip-JBinding communicates with the java part through the java jni interface and uses the corresponding native 7-Zip interface to perform operations."

Also, see ( )