fusesource / leveldbjni

A Java Native Interface to LevelDB
BSD 3-Clause "New" or "Revised" License
535 stars 145 forks source link

Release new version with lastest LevelDB release #107

Open albertsteckermeier opened 4 years ago

albertsteckermeier commented 4 years ago

I'm currently trying to build a Windows DLL for this library that doesn't require any Microsoft Visual C++ Redistributable to be installed. Since it seemed harder to build this for the old version of LevelDB I built the native binaries right away with the latest LevelDB release 1.22. I could make my own release but it's a hassle and having a new 1.9 release with the current LevelDB version would probably help everyone.

Can you guys create a new release? I'd be happy to support and could even provide you with pre-built binaries for all the operating systems.

If you want to build the binaries yourself you can use the latest forks I've provided here.

Let me know in case you need further input.

Cheers, Albert

ajsutton commented 2 years ago

If you're still around, I've been working to get a more recent build of leveldbjni working and with better platform support. So far I have Linux x86_64, Mac x86_64 and Mac aarch64 as fully automated builds in CircleCI (https://github.com/ConsenSys/leveldbjni-native) but it still uses the old leveldb and I haven't managed to get a Windows build working at all. I'd love some help if you still remember the details.

Will try and test out your branches of updated snappy and leveldb on Linux and Mac soon too. Thanks for sharing.

ajsutton commented 2 years ago

So one thing I do notice with these branches is that when building leveldb, it fails to find snappy so I don't think it's building a snappy enabled version of leveldb. That seems to be true on Linux, Mac and Windows.

And on Windows it would be really helpful to know if there's a way to build the actual leveldbjni native library from the command line (and with a recent visual studio).

ajsutton commented 2 years ago

Ok, managed to get snappy found on Mac and Linux by setting some env vars - probably not the "right" way to do it with cmake but effective:

CXXFLAGS="${CXXFLAGS:-} -I${BUILD_DIR}/snappy/" \
  LDFLAGS="${LDFLAGS:-} -L${BUILD_DIR}/snappy/ -lstdc++" \
  cmake ...

https://github.com/ConsenSys/leveldbjni-native/pull/2/ has the changes to build these new branches for Mac and Linux.