All changes in this project will be noted in this file.
Fixed stack overflow due to a FromValue impl
- Added
QListandRListfor using dynamic lists - Allow using references for custom types in
query!macro
- Fixed decode of multi-row responses
- Added enhanced multi-row decode support
- Added deref to slice for rows
- Fixed error propagation in
FromResponseimpls
- Fixed response decoder and handling issues
- Added
FromResponseforVec<Row> - Added
SQParamimpl for&Vec<u8>
- Field change warnings:
- The
Configstruct now has one additional field. This is not a breaking change because the functionality of the library remains unchanged
- Added support for pipelines
- Added
Response::parseto convert a response into compatible types
Reduced allocations in Query.
Fixed bugs with the derive macros.
Yanked version
Fixed an issue with single-item struct derives when using the Response macro.
Added the following implementations:
FromResponseforRowFromValueforValue(this was erroneously missing)- Added the
Value::parseandValue::parse_clonedmember methods - Added
Row::into_firstandRow::into_first_asmember methods
Support deriving queries and responses.
Fixed issues with documentation
- Completely up to date for Skyhash 2.0
- New query API interface for Skytable Octave (completely breaking!)
- No longer depends on OpenSSL
The enter query interface as changed and is incompatible with previous driver versions. Please consider reading the Skytable Octave upgrade guide.
- Sync connection pooling
- Async connection pooling
- Added
run_query_rawandrun_querythat lets you specify custom types:use skytable::{query, sync::Connection}; let mut con = Connection::new("127.0.0.1", "2003").unwrap(); let string: String = con.run_query(query!("heya")).unwrap(); let number: usize = con.run_query(query!("dbsize")).unwrap();
SkyRawResultis nowSkyResultSkyResultis nowSkyQueryResult- The feature
asyncis nowaio Query::addis nowQuery::appendto avoid confusion with thecore::ops::AddtraitElement::Floatis now anf32instead of anf64because the Skyhash specification requires it (this was mistakenly anf64but shouldn't be a problem because no actions returned any floating point value)
- Added support for pipelined queries
- Added support for the
whereamiaction - Added support for non-null typed arrays
Breaking changes!
- Fixed missing entity name in query generation for DDL's
create_tablefunction
- The inner type of the
entityfield inddl::Keymapwas changed toStringinstead ofOption<String>. Since this was never a public field, it should not affect you. However, if you depend onDebugfmt implementations then you should keep this in mind
Breaking changes
- Support for DDL queries
- Support for directly getting types from actions (this is required to be passed for actions
that need them). For example:
All errors resulting from this parse are simply propagated into the
let x: u64 = con.get("my integer key").unwrap(); let myval: Vec<String> = con.mget(["x", "y", "z"]).unwrap();
Error::ParseErrorvariant - Support for retrieval of custom types through the use of the
FromSkyhashBytestrait
- Errors have been unified into a single error type
- Some types have been removed to aid simplicity:
types::Strtypes::SimpleArray
- The trait method
IntoSkyhashBytes::into_byteswas renamed toIntoSkyhashBytes::as_bytes()to follow naming conventions
Breaking changes
- Added support for Skyhash 1.1
- Changed
Querytype toAnyArrayas in the latest protocol
Breaking changes
- Added backward compatibility for Rust versions < 1.51 (
people who need const-generics just add
const-gento their feature list) - Added support for the
POPquery type into_stringis now calledas_stringto follow naming conventions (traitIntoSkyhashBytes)- New SSL features:
ssl: For sync TLSsslv: For sync TLS (vendored)aio-ssl: For async TLSaio-sslv: For async TLS (vendored)
Breaking changes
- Dropped support for Terrapipe 1.0
- Added support for Skyhash 1.0
- Response variants have changed according to the protocol
- Added
syncandasyncfeatures withsyncas a default feature andasyncas an optional feature - Queries constructed using
Query::arg()now follow the builder pattern - Queries can be constructed by taking references using
Query::push run_simple_querynow takes a reference to aQueryinstead of taking ownership of it- Actions can now be run by importing
skytable::actions::Actions(orskytable::actions::AsyncActionsfor theasyncAPI).
For example:rust use skytable::{Connection, actions::Actions}; fn main() { let mut con = Connection::new("127.0.0.1", 2003).unwrap(); con.set("x", "100").unwrap(); assert_eq!(con.get("x").unwrap(), "100".to_owned()); } run_simple_query(both sync and async) verify whether the query is empty or not. If it is, the function will panic. This is a very important check to avoid confusion as the server would return aPacketErrorwhich might create additional confusionQueryobjects can now be constructed with theFromtrait on appropriate types (such as single items or sequences)
Breaking changes
- Fixed
Responsevariant returningVec<DataGroup>instead of justDataGroup - Implemented
IntoIteratorforDataGroup
This release has been yanked because it returned the incorrect type in the
Responseenum
Initial release