-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
consider merging with lmdb #32
Comments
What are the differences? |
Here are some differences I observed between this crate and the danburkert crate while I wrote a simple LMDB-driven application during the past few weeks. Not only did I end up using danburkert crate because of its overall superior API design, but I caution everyone about using this crate and recommend they do not use this crate. I apologize for the harshness of my criticism, but this crate suffers from at least one unacceptable design flaw as well as several additional flaws whose seriousness is in the eye of the beholder. Memory-safety This is the unacceptable design flaw and the biggest difference between this and the danburkert crate. This crate is memory-unsafe. I explained part of the problem in issue #48. The gist is that this crate fails to mark several memory-unsafe functions as Simpler database abstraction Another difference is how the two crates represent database handles. This crate has two distinct types: a non-lifetime-tracked This difference matters as a point of convenience and ease-of-use. In the danburkert crate, to put an item into a database, the application need only create a transaction. Whereas, in this crate, it's necessary to create a transaction and a Generic code regarding read-only vs read-write Yet another design difference is that the danburkert crate provides the Minor points of taste and style There are other, minor nits. For example, the danburkert crate provides an |
https://github.com/danburkert/lmdb-rs
The text was updated successfully, but these errors were encountered: