deephacks / lmdbjni

LMDB for Java
Apache License 2.0
204 stars 28 forks source link

more artifacts build should be provided #59

Closed bwzhang2011 closed 8 years ago

bwzhang2011 commented 8 years ago

@krisskross, would you mind leaving us more artifacts build from the source like lmdbjni-win64 or lmdbjni-linux64, as it seems that many of the java developers not familiar with the vcbuild (since visual studio) and else. and if could be so, it would help promoting the use for such wonderful api with lmdb.

bwzhang2011 commented 8 years ago

I'm sorry that I could not easily build the artifact for win64 or linux64 without your help and hope you could provide such not only for release but also for some snapshot.

krisskross commented 8 years ago

The problem I see with SNAPSHOT builds is deciding when to build them. There is no automated infrastructure in place and the procedure is quite time consuming since multiple architectures need to be built. Even now, I don't have a mac that can build the OSX release. So I don't really want to commit to providing SNAPSHOT releases. But maybe we could do releases more often?

bwzhang2011 commented 8 years ago

@krisskross, thanks for feedback. maybe linux64 and win64 could be provided or released more often. and we hope you could provide more examples for us to learn. and I know that you did such with RxJava in another project but sometimes we just want to use with lmdbjni purely without the rely on rxJava for you should add learning cost for rxjava in order to master rxlmdb but sometimes we just want to use it purely and simply.

krisskross commented 8 years ago

Ok, I know LMDB 0.9.18 is just around the corner, so let's wait for that until next release.

To be honest, the API surface is so small and there isn't many examples to write :-) And since lmdbjni is almost identical to LMDB you can understand documentation and code examples from its origins (look at the links in the readme). Even implementations in other languages should make pretty much sense. You can also have a look at the tests.

bwzhang2011 commented 8 years ago

@krisskross, thanks for you advice. as our platform is based on java so any integration like lmdbjni is much appreciated and widely used as it reduces the integration cost. as Rxlmdb introduces many features like querying strategy, we hope those could be provided in simple manner in lmdbjni, and if so rxlmdb also could be benefit from it and use it around rxjava way. by the way, thanks a lot for such and it may be a good solution to replace Berkeley db in many use cases.

krisskross commented 8 years ago

I have been thinking of implementing the features of RxLMDB in lmdbjni. However, the implementation would probably be somewhat opinionated which is why I created RxLMDB in the first place. It would also mean re-implementing stuff of RxJava which kind of sucks.

I can tell you're not comfortable with RxJava? It took me a while to adjust my brain as well :-) It's well worth the effort though.

krisskross commented 8 years ago

Just to clarify. I think keeping lmdbjni as close as possible to native LMDB is a good thing. Sure we can make things easier to work with but fancier abstractions and concurrency are best kept outside in other projects. At least that's my opinion. Suggestions welcome of course.

bwzhang2011 commented 8 years ago

@krisskross, thanks for your advice and suggestion. I think there's no doubt that the contribution of rxjava for its reactive manner way for programming promotion especially for fluent dsl and combination manner. but I dare say that it would be no paradox that you could make it together maybe at more classes or interfaces for both to be implemented in either pure java way or rxjava way. for turn such way to be rxlmdb is also the best choice for your concern on abstractions and concurrency so it is with the cost down for the code lines. so what I paid more attention to is the pure way so suppose that you're just the one not familiar with rxjava and you also want to introduce more about lmdbjni project for easily use cases and let others improve the integration and help them speed up their work and in all you've done better work and I just suggest more better example or idea from rxlmdb to make the original project more understanding and easy to use.

krisskross commented 8 years ago

What additional functionality are you looking for exactly? Can you give some examples?

phraktle commented 8 years ago

It would be great to set up automated multi-platform builds. It seems travis-ci.org could take care of most of it (Linux, Mac OS X, alas no Windows) – here's an example JNI binding library that successfully uses it: https://github.com/luben/zstd-jni

krisskross commented 8 years ago

Definitely interesting. I created an issue for it #60.

krisskross commented 8 years ago

Multi platform builds are now fixed. Would be nice to have those artifacts (including SNAPSHOT) published in Maven Central. Seems that some people do this, ill try to get this working too.

krisskross commented 8 years ago

Working example from RxJava: https://github.com/ReactiveX/RxJava/issues/2586

krestenkrab commented 8 years ago

Yes, I'm missing OS X builds / http://repo1.maven.org/maven2/org/deephacks/lmdbjni/lmdbjni-osx64/

krisskross commented 8 years ago

@krestenkrab I don't have access to OSX anymore. Give me a few days to publish the build.

krisskross commented 8 years ago

@krestenkrab Just deployed 0.4.6 to Maven Central. Should be available in a couple of hours. Btw, do you know if it's possible to run OSX in VirtualBox? Last time I tried there was a lot of issues.

krestenkrab commented 8 years ago

@krisskross nunno about VirtualBox, sorry

krisskross commented 8 years ago

Closed. See #63 for follow up.