I'm happy to announce that we've got a 0.2 release of the API complete. Again, much of the low level work was completed by @yjh0502, see the changelog below for all the APIs added. This release also brings the implementations for Tuple::{decode, encode}
, which @rushmorem had huge hand in making sure implemented the Rust style guidelines appropriately. There was a lot of churn on the Tuple
interfaces, but I think we finally landed on a decent implementation.
In addition, the FoundationDB bindingstester and benchmark suites have been integrated with the library by @yjh0502. These should prove that this implementation is compliant with the other client libraries.
Again, as a warning to early adopters, many of these interfaces are still in flux, and will be improved in the future. For example: things like Subspace
, KeySelector
, RangeOptions
, etc. still need to gain borrowed counterparts, that should make for fewer allocations for those types. Also, I didn't capture API changes at a granular level in this changelog, apologies if this breaks any existing implementations. That being said, we hope you'll try it and give us your feedback. Thanks!
0.2.0
Added
- Database::transact (#34, @yjh0502)
- RangeOptionBuilder::from_tuple (#81, @rushmorem)
- Subspace (#54 #56 #57 #76 #78, @yjh0502 @rushmorem)
- Transaction::watch (#25 #59, @yjh0502)
- Transaction::atomic_op (#26, @yjh0502)
- Transaction::get_range (#28, @yjh0502)
- Transaction::{get, set}_read_version (#38, @yjh0502)
- Transaction::add_conflict_range (#50, @yjh0502)
- Tuple interfaces (#40 #41 #42 #46 #47 #51 #60 #62 #64 #67 #74 #80 #83, @yjh0502 @rushmorem)
- Additional tests for Transactions (#33, @yjh0502)
- Class Scheduling Tutorial in examples (#65)
- FoundationDB bindingtester support (#39 #43 #45, @yjh0502)
- FoundationDB benchmarking test suite support (#70 #73, @yjh0502)
- Support to scripts for installing on Centos/RHEL
Changed
- Added TupleError to foundationdb::Error (#77)
- API names more inline with Rust style guidelinse (#84 @rushmorem)