Skip to content

Commit 1f487da

Browse files
authored
Merge pull request #17 from serde-rs/bincode
Update to bincode 2
2 parents 6e99bc7 + d62ef61 commit 1f487da

File tree

3 files changed

+36
-9
lines changed

3 files changed

+36
-9
lines changed

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ byteorder = "1.4.3"
1717
serde = "1.0.166"
1818

1919
[dev-dependencies]
20-
bincode = "1.0"
20+
bincode = { version = "2", features = ["derive", "serde"] }
2121
postcard = { version = "1.0", features = ["use-std"] }
2222
serde = { version = "1.0", features = ["derive"] }
2323

benches/bincode.rs

+30-6
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use serde::{Deserialize, Serialize};
1010
use std::hint::black_box;
1111
use test::Bencher;
1212

13-
#[derive(Serialize, Deserialize)]
13+
#[derive(Serialize, Deserialize, bincode::Encode, bincode::Decode)]
1414
struct Foo {
1515
bar: String,
1616
baz: u64,
@@ -28,25 +28,49 @@ impl Default for Foo {
2828
}
2929

3030
#[bench]
31-
fn bincode_deserialize(b: &mut Bencher) {
31+
fn bincode_serde_deserialize(b: &mut Bencher) {
3232
let foo = Foo::default();
33-
let bytes = bincode::serialize(&foo).unwrap();
33+
let bytes = bincode::serde::encode_to_vec(&foo, bincode::config::standard()).unwrap();
3434

3535
b.iter(|| {
3636
let bytes = black_box(&bytes);
37-
bincode::deserialize::<Foo>(bytes).unwrap()
37+
bincode::serde::decode_from_slice::<Foo, _>(bytes, bincode::config::standard()).unwrap()
3838
});
3939
}
4040

4141
#[bench]
42-
fn bincode_serialize(b: &mut Bencher) {
42+
fn bincode_serde_serialize(b: &mut Bencher) {
4343
let foo = Foo::default();
4444
let mut bytes = Vec::with_capacity(128);
4545

4646
b.iter(|| {
4747
let foo = black_box(&foo);
4848
bytes.clear();
49-
bincode::serialize_into(&mut bytes, foo).unwrap();
49+
bincode::serde::encode_into_std_write(foo, &mut bytes, bincode::config::standard())
50+
.unwrap();
51+
});
52+
}
53+
54+
#[bench]
55+
fn bincode_decode(b: &mut Bencher) {
56+
let foo = Foo::default();
57+
let bytes = bincode::encode_to_vec(&foo, bincode::config::standard()).unwrap();
58+
59+
b.iter(|| {
60+
let bytes = black_box(&bytes);
61+
bincode::decode_from_slice::<Foo, _>(bytes, bincode::config::standard()).unwrap()
62+
});
63+
}
64+
65+
#[bench]
66+
fn bincode_encode(b: &mut Bencher) {
67+
let foo = Foo::default();
68+
let mut bytes = Vec::with_capacity(128);
69+
70+
b.iter(|| {
71+
let foo = black_box(&foo);
72+
bytes.clear();
73+
bincode::encode_into_std_write(foo, &mut bytes, bincode::config::standard()).unwrap();
5074
});
5175
}
5276

tests/bincode.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ impl Default for Foo {
2727
fn test_ser() {
2828
let foo = Foo::default();
2929

30-
let bincode_bytes = bincode::serialize(&foo).unwrap();
30+
let bincode_bytes = bincode::serde::encode_to_vec(&foo, bincode::config::legacy()).unwrap();
3131

3232
let mut serde_bytes = Vec::new();
3333
serde_bench::serialize(&mut serde_bytes, &foo).unwrap();
@@ -41,7 +41,10 @@ fn test_de() {
4141
let mut bytes = Vec::new();
4242
serde_bench::serialize(&mut bytes, &foo).unwrap();
4343

44-
let bincode_foo = bincode::deserialize::<Foo>(&bytes).unwrap();
44+
let bincode_foo =
45+
bincode::serde::decode_from_slice::<Foo, _>(&bytes, bincode::config::legacy())
46+
.unwrap()
47+
.0;
4548
assert_eq!(bincode_foo, foo);
4649

4750
let serde_foo = serde_bench::deserialize::<Foo>(&bytes).unwrap();

0 commit comments

Comments
 (0)