docs.rs failed to build velocypack-0.1.2
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
velocypack-0.1.4
rust-velocypack
Rust implementation of the VelocyPack protocol used by ArangoDB that uses serde for serialization/deserialization.
Status
Currently a very early work in progress, with partial implementations of both serialization and deserialization, with little to no documentation.
Currently (de)serialization for the following types has been implemented (✓ = implemented, blank = not implemented yet, ✗ = no implementation planned yet):
Serialize Deserialize Value type
✗ ✗ 0x00 : none
✓ ✓ 0x01 : empty array
✓ ✓ 0x02 : array without index table, 1-byte byte length
✓ ✓ 0x03 : array without index table, 2-byte byte length
✓ ✓ 0x04 : array without index table, 4-byte byte length
✓ ✓ 0x05 : array without index table, 8-byte byte length
✓ ✓ 0x06 : array with 1-byte index table offsets, bytelen and # subvals
✓ ✓ 0x07 : array with 2-byte index table offsets, bytelen and # subvals
✓ ✓ 0x08 : array with 4-byte index table offsets, bytelen and # subvals
✓ ✓ 0x09 : array with 8-byte index table offsets, bytelen and # subvals
✓ ✓ 0x0a : empty object
✓ ✓ 0x0b : object with 1-byte index table offsets, sorted by attribute name, 1-byte bytelen and # subvals
✓ ✓ 0x0c : object with 2-byte index table offsets, sorted by attribute name, 2-byte bytelen and # subvals
✓ ✓ 0x0d : object with 4-byte index table offsets, sorted by attribute name, 4-byte bytelen and # subvals
✓ ✓ 0x0e : object with 8-byte index table offsets, sorted by attribute name, 8-byte bytelen and # subvals
✗ ✓ 0x0f : object with 1-byte index table offsets, not sorted by attribute name, 1-byte bytelen and # subvals
✗ ✓ 0x10 : object with 2-byte index table offsets, not sorted by attribute name, 2-byte bytelen and # subvals
✗ ✓ 0x11 : object with 4-byte index table offsets, not sorted by attribute name, 4-byte bytelen and # subvals
✗ ✓ 0x12 : object with 8-byte index table offsets, not sorted by attribute name, 8-byte bytelen and # subvals
✗ ✓ 0x13 : compact array, no index table
✗ 0x14 : compact object, no index table
✗ ✗ 0x15-0x16 : reserved
✗ ✗ 0x17 : illegal
✓ ✓ 0x18 : null
✓ ✓ 0x19 : false
✓ ✓ 0x1a : true
✓ ✓ 0x1b : double IEEE-754
0x1c : UTC-date
✗ ✗ 0x1d : external (only in memory)
✗ ✗ 0x1e : minKey
✗ ✗ 0x1f : maxKey
✓ ✓ 0x20-0x27 : signed int
✓ ✓ 0x28-0x2f : uint
✓ ✓ 0x30-0x39 : small integers
✓ ✓ 0x3a-0x3f : small negative integers
✓ ✓ 0x40-0xbe : UTF-8-string
✓ ✓ 0xbf : long UTF-8-string
✓ 0xc0-0xc7 : binary blob
✗ ✗ 0xc8-0xcf : positive long packed BCD-encoded float
✗ ✗ 0xd0-0xd7 : negative long packed BCD-encoded float
✗ ✗ 0xd8-0xef : reserved
✗ ✗ 0xf0-0xff : custom types
Example
Cargo.toml
:
[dependencies]
velocypack = "0.1.0"
serde = { version = "1.0", features = ["derive"] }
src/main.rs
:
use Serialize;
Output can be checked using the VelocyPack tools, e.g.:
$ cargo run > /tmp/bob.vpack && vpack-to-json --hex /tmp/bob.vpack /tmp/bob.json && cat /tmp/bob.json
Successfully converted JSON infile '/tmp/bob.vpack'
VPack Infile size: 63
JSON Outfile size: 137
{
"age" : 23,
"name" : "Bob",
"friends" : [
{
"age" : 42,
"name" : "Alice",
"friends" : [
]
}
]
}