summaryrefslogtreecommitdiff
path: root/vendor/bytes/benches
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-07-15 16:37:08 -0600
committermo khan <mo@mokhan.ca>2025-07-17 16:30:22 -0600
commit45df4d0d9b577fecee798d672695fe24ff57fb1b (patch)
tree1b99bf645035b58e0d6db08c7a83521f41f7a75b /vendor/bytes/benches
parentf94f79608393d4ab127db63cc41668445ef6b243 (diff)
feat: migrate from Cedar to SpiceDB authorization system
This is a major architectural change that replaces the Cedar policy-based authorization system with SpiceDB's relation-based authorization. Key changes: - Migrate from Rust to Go implementation - Replace Cedar policies with SpiceDB schema and relationships - Switch from envoy `ext_authz` with Cedar to SpiceDB permission checks - Update build system and dependencies for Go ecosystem - Maintain Envoy integration for external authorization This change enables more flexible permission modeling through SpiceDB's Google Zanzibar inspired relation-based system, supporting complex hierarchical permissions that were difficult to express in Cedar. Breaking change: Existing Cedar policies and Rust-based configuration will no longer work and need to be migrated to SpiceDB schema.
Diffstat (limited to 'vendor/bytes/benches')
-rw-r--r--vendor/bytes/benches/buf.rs186
-rw-r--r--vendor/bytes/benches/bytes.rs120
-rw-r--r--vendor/bytes/benches/bytes_mut.rs266
3 files changed, 0 insertions, 572 deletions
diff --git a/vendor/bytes/benches/buf.rs b/vendor/bytes/benches/buf.rs
deleted file mode 100644
index 616d1874..00000000
--- a/vendor/bytes/benches/buf.rs
+++ /dev/null
@@ -1,186 +0,0 @@
-#![feature(test)]
-#![warn(rust_2018_idioms)]
-
-extern crate test;
-
-use bytes::Buf;
-use test::Bencher;
-
-/// Dummy Buf implementation
-struct TestBuf {
- buf: &'static [u8],
- readlens: &'static [usize],
- init_pos: usize,
- pos: usize,
- readlen_pos: usize,
- readlen: usize,
-}
-impl TestBuf {
- fn new(buf: &'static [u8], readlens: &'static [usize], init_pos: usize) -> TestBuf {
- let mut buf = TestBuf {
- buf,
- readlens,
- init_pos,
- pos: 0,
- readlen_pos: 0,
- readlen: 0,
- };
- buf.reset();
- buf
- }
- fn reset(&mut self) {
- self.pos = self.init_pos;
- self.readlen_pos = 0;
- self.next_readlen();
- }
- /// Compute the length of the next read :
- /// - use the next value specified in readlens (capped by remaining) if any
- /// - else the remaining
- fn next_readlen(&mut self) {
- self.readlen = self.buf.len() - self.pos;
- if let Some(readlen) = self.readlens.get(self.readlen_pos) {
- self.readlen = std::cmp::min(self.readlen, *readlen);
- self.readlen_pos += 1;
- }
- }
-}
-impl Buf for TestBuf {
- fn remaining(&self) -> usize {
- self.buf.len() - self.pos
- }
- fn advance(&mut self, cnt: usize) {
- self.pos += cnt;
- assert!(self.pos <= self.buf.len());
- self.next_readlen();
- }
- fn chunk(&self) -> &[u8] {
- if self.readlen == 0 {
- Default::default()
- } else {
- &self.buf[self.pos..self.pos + self.readlen]
- }
- }
-}
-
-/// Dummy Buf implementation
-/// version with methods forced to not be inlined (to simulate costly calls)
-struct TestBufC {
- inner: TestBuf,
-}
-impl TestBufC {
- fn new(buf: &'static [u8], readlens: &'static [usize], init_pos: usize) -> TestBufC {
- TestBufC {
- inner: TestBuf::new(buf, readlens, init_pos),
- }
- }
- fn reset(&mut self) {
- self.inner.reset()
- }
-}
-impl Buf for TestBufC {
- #[inline(never)]
- fn remaining(&self) -> usize {
- self.inner.remaining()
- }
- #[inline(never)]
- fn advance(&mut self, cnt: usize) {
- self.inner.advance(cnt)
- }
- #[inline(never)]
- fn chunk(&self) -> &[u8] {
- self.inner.chunk()
- }
-}
-
-macro_rules! bench {
- ($fname:ident, testbuf $testbuf:ident $readlens:expr, $method:ident $(,$arg:expr)*) => (
- #[bench]
- fn $fname(b: &mut Bencher) {
- let mut bufs = [
- $testbuf::new(&[1u8; 8+0], $readlens, 0),
- $testbuf::new(&[1u8; 8+1], $readlens, 1),
- $testbuf::new(&[1u8; 8+2], $readlens, 2),
- $testbuf::new(&[1u8; 8+3], $readlens, 3),
- $testbuf::new(&[1u8; 8+4], $readlens, 4),
- $testbuf::new(&[1u8; 8+5], $readlens, 5),
- $testbuf::new(&[1u8; 8+6], $readlens, 6),
- $testbuf::new(&[1u8; 8+7], $readlens, 7),
- ];
- b.iter(|| {
- for i in 0..8 {
- bufs[i].reset();
- let buf: &mut dyn Buf = &mut bufs[i]; // type erasure
- test::black_box(buf.$method($($arg,)*));
- }
- })
- }
- );
- ($fname:ident, slice, $method:ident $(,$arg:expr)*) => (
- #[bench]
- fn $fname(b: &mut Bencher) {
- // buf must be long enough for one read of 8 bytes starting at pos 7
- let arr = [1u8; 8+7];
- b.iter(|| {
- for i in 0..8 {
- let mut buf = &arr[i..];
- let buf = &mut buf as &mut dyn Buf; // type erasure
- test::black_box(buf.$method($($arg,)*));
- }
- })
- }
- );
- ($fname:ident, option) => (
- #[bench]
- fn $fname(b: &mut Bencher) {
- let data = [1u8; 1];
- b.iter(|| {
- for _ in 0..8 {
- let mut buf = Some(data);
- let buf = &mut buf as &mut dyn Buf; // type erasure
- test::black_box(buf.get_u8());
- }
- })
- }
- );
-}
-
-macro_rules! bench_group {
- ($method:ident $(,$arg:expr)*) => (
- bench!(slice, slice, $method $(,$arg)*);
- bench!(tbuf_1, testbuf TestBuf &[], $method $(,$arg)*);
- bench!(tbuf_1_costly, testbuf TestBufC &[], $method $(,$arg)*);
- bench!(tbuf_2, testbuf TestBuf &[1], $method $(,$arg)*);
- bench!(tbuf_2_costly, testbuf TestBufC &[1], $method $(,$arg)*);
- // bench!(tbuf_onebyone, testbuf TestBuf &[1,1,1,1,1,1,1,1], $method $(,$arg)*);
- // bench!(tbuf_onebyone_costly, testbuf TestBufC &[1,1,1,1,1,1,1,1], $method $(,$arg)*);
- );
-}
-
-mod get_u8 {
- use super::*;
- bench_group!(get_u8);
-}
-mod get_u16 {
- use super::*;
- bench_group!(get_u16);
-}
-mod get_u32 {
- use super::*;
- bench_group!(get_u32);
-}
-mod get_u64 {
- use super::*;
- bench_group!(get_u64);
-}
-mod get_f32 {
- use super::*;
- bench_group!(get_f32);
-}
-mod get_f64 {
- use super::*;
- bench_group!(get_f64);
-}
-mod get_uint24 {
- use super::*;
- bench_group!(get_uint, 3);
-}
diff --git a/vendor/bytes/benches/bytes.rs b/vendor/bytes/benches/bytes.rs
deleted file mode 100644
index 8782d006..00000000
--- a/vendor/bytes/benches/bytes.rs
+++ /dev/null
@@ -1,120 +0,0 @@
-#![feature(test)]
-#![warn(rust_2018_idioms)]
-
-extern crate test;
-
-use bytes::Bytes;
-use test::Bencher;
-
-#[bench]
-fn deref_unique(b: &mut Bencher) {
- let buf = Bytes::from(vec![0; 1024]);
-
- b.iter(|| {
- for _ in 0..1024 {
- test::black_box(&buf[..]);
- }
- })
-}
-
-#[bench]
-fn deref_shared(b: &mut Bencher) {
- let buf = Bytes::from(vec![0; 1024]);
- let _b2 = buf.clone();
-
- b.iter(|| {
- for _ in 0..1024 {
- test::black_box(&buf[..]);
- }
- })
-}
-
-#[bench]
-fn deref_static(b: &mut Bencher) {
- let buf = Bytes::from_static(b"hello world");
-
- b.iter(|| {
- for _ in 0..1024 {
- test::black_box(&buf[..]);
- }
- })
-}
-
-#[bench]
-fn clone_static(b: &mut Bencher) {
- let bytes =
- Bytes::from_static("hello world 1234567890 and have a good byte 0987654321".as_bytes());
-
- b.iter(|| {
- for _ in 0..1024 {
- test::black_box(test::black_box(&bytes).clone());
- }
- })
-}
-
-#[bench]
-fn clone_shared(b: &mut Bencher) {
- let bytes = Bytes::from(b"hello world 1234567890 and have a good byte 0987654321".to_vec());
-
- b.iter(|| {
- for _ in 0..1024 {
- test::black_box(test::black_box(&bytes).clone());
- }
- })
-}
-
-#[bench]
-fn clone_arc_vec(b: &mut Bencher) {
- use std::sync::Arc;
- let bytes = Arc::new(b"hello world 1234567890 and have a good byte 0987654321".to_vec());
-
- b.iter(|| {
- for _ in 0..1024 {
- test::black_box(test::black_box(&bytes).clone());
- }
- })
-}
-
-#[bench]
-fn from_long_slice(b: &mut Bencher) {
- let data = [0u8; 128];
- b.bytes = data.len() as u64;
- b.iter(|| {
- let buf = Bytes::copy_from_slice(&data[..]);
- test::black_box(buf);
- })
-}
-
-#[bench]
-fn slice_empty(b: &mut Bencher) {
- b.iter(|| {
- // `clone` is to convert to ARC
- let b = Bytes::from(vec![17; 1024]).clone();
- for i in 0..1000 {
- test::black_box(b.slice(i % 100..i % 100));
- }
- })
-}
-
-#[bench]
-fn slice_short_from_arc(b: &mut Bencher) {
- b.iter(|| {
- // `clone` is to convert to ARC
- let b = Bytes::from(vec![17; 1024]).clone();
- for i in 0..1000 {
- test::black_box(b.slice(1..2 + i % 10));
- }
- })
-}
-
-#[bench]
-fn split_off_and_drop(b: &mut Bencher) {
- b.iter(|| {
- for _ in 0..1024 {
- let v = vec![10; 200];
- let mut b = Bytes::from(v);
- test::black_box(b.split_off(100));
- test::black_box(b);
- }
- })
-}
diff --git a/vendor/bytes/benches/bytes_mut.rs b/vendor/bytes/benches/bytes_mut.rs
deleted file mode 100644
index b0694362..00000000
--- a/vendor/bytes/benches/bytes_mut.rs
+++ /dev/null
@@ -1,266 +0,0 @@
-#![feature(test)]
-#![warn(rust_2018_idioms)]
-
-extern crate test;
-
-use bytes::{BufMut, BytesMut};
-use test::Bencher;
-
-#[bench]
-fn alloc_small(b: &mut Bencher) {
- b.iter(|| {
- for _ in 0..1024 {
- test::black_box(BytesMut::with_capacity(12));
- }
- })
-}
-
-#[bench]
-fn alloc_mid(b: &mut Bencher) {
- b.iter(|| {
- test::black_box(BytesMut::with_capacity(128));
- })
-}
-
-#[bench]
-fn alloc_big(b: &mut Bencher) {
- b.iter(|| {
- test::black_box(BytesMut::with_capacity(4096));
- })
-}
-
-#[bench]
-fn deref_unique(b: &mut Bencher) {
- let mut buf = BytesMut::with_capacity(4096);
- buf.put(&[0u8; 1024][..]);
-
- b.iter(|| {
- for _ in 0..1024 {
- test::black_box(&buf[..]);
- }
- })
-}
-
-#[bench]
-fn deref_unique_unroll(b: &mut Bencher) {
- let mut buf = BytesMut::with_capacity(4096);
- buf.put(&[0u8; 1024][..]);
-
- b.iter(|| {
- for _ in 0..128 {
- test::black_box(&buf[..]);
- test::black_box(&buf[..]);
- test::black_box(&buf[..]);
- test::black_box(&buf[..]);
- test::black_box(&buf[..]);
- test::black_box(&buf[..]);
- test::black_box(&buf[..]);
- test::black_box(&buf[..]);
- }
- })
-}
-
-#[bench]
-fn deref_shared(b: &mut Bencher) {
- let mut buf = BytesMut::with_capacity(4096);
- buf.put(&[0u8; 1024][..]);
- let _b2 = buf.split_off(1024);
-
- b.iter(|| {
- for _ in 0..1024 {
- test::black_box(&buf[..]);
- }
- })
-}
-
-#[bench]
-fn deref_two(b: &mut Bencher) {
- let mut buf1 = BytesMut::with_capacity(8);
- buf1.put(&[0u8; 8][..]);
-
- let mut buf2 = BytesMut::with_capacity(4096);
- buf2.put(&[0u8; 1024][..]);
-
- b.iter(|| {
- for _ in 0..512 {
- test::black_box(&buf1[..]);
- test::black_box(&buf2[..]);
- }
- })
-}
-
-#[bench]
-fn clone_frozen(b: &mut Bencher) {
- let bytes = BytesMut::from(&b"hello world 1234567890 and have a good byte 0987654321"[..])
- .split()
- .freeze();
-
- b.iter(|| {
- for _ in 0..1024 {
- test::black_box(&bytes.clone());
- }
- })
-}
-
-#[bench]
-fn alloc_write_split_to_mid(b: &mut Bencher) {
- b.iter(|| {
- let mut buf = BytesMut::with_capacity(128);
- buf.put_slice(&[0u8; 64]);
- test::black_box(buf.split_to(64));
- })
-}
-
-#[bench]
-fn drain_write_drain(b: &mut Bencher) {
- let data = [0u8; 128];
-
- b.iter(|| {
- let mut buf = BytesMut::with_capacity(1024);
- let mut parts = Vec::with_capacity(8);
-
- for _ in 0..8 {
- buf.put(&data[..]);
- parts.push(buf.split_to(128));
- }
-
- test::black_box(parts);
- })
-}
-
-#[bench]
-fn fmt_write(b: &mut Bencher) {
- use std::fmt::Write;
- let mut buf = BytesMut::with_capacity(128);
- let s = "foo bar baz quux lorem ipsum dolor et";
-
- b.bytes = s.len() as u64;
- b.iter(|| {
- let _ = write!(buf, "{}", s);
- test::black_box(&buf);
- unsafe {
- buf.set_len(0);
- }
- })
-}
-
-#[bench]
-fn bytes_mut_extend(b: &mut Bencher) {
- let mut buf = BytesMut::with_capacity(256);
- let data = [33u8; 32];
-
- b.bytes = data.len() as u64 * 4;
- b.iter(|| {
- for _ in 0..4 {
- buf.extend(&data);
- }
- test::black_box(&buf);
- unsafe {
- buf.set_len(0);
- }
- });
-}
-
-// BufMut for BytesMut vs Vec<u8>
-
-#[bench]
-fn put_slice_bytes_mut(b: &mut Bencher) {
- let mut buf = BytesMut::with_capacity(256);
- let data = [33u8; 32];
-
- b.bytes = data.len() as u64 * 4;
- b.iter(|| {
- for _ in 0..4 {
- buf.put_slice(&data);
- }
- test::black_box(&buf);
- unsafe {
- buf.set_len(0);
- }
- });
-}
-
-#[bench]
-fn put_u8_bytes_mut(b: &mut Bencher) {
- let mut buf = BytesMut::with_capacity(256);
- let cnt = 128;
-
- b.bytes = cnt as u64;
- b.iter(|| {
- for _ in 0..cnt {
- buf.put_u8(b'x');
- }
- test::black_box(&buf);
- unsafe {
- buf.set_len(0);
- }
- });
-}
-
-#[bench]
-fn put_slice_vec(b: &mut Bencher) {
- let mut buf = Vec::<u8>::with_capacity(256);
- let data = [33u8; 32];
-
- b.bytes = data.len() as u64 * 4;
- b.iter(|| {
- for _ in 0..4 {
- buf.put_slice(&data);
- }
- test::black_box(&buf);
- unsafe {
- buf.set_len(0);
- }
- });
-}
-
-#[bench]
-fn put_u8_vec(b: &mut Bencher) {
- let mut buf = Vec::<u8>::with_capacity(256);
- let cnt = 128;
-
- b.bytes = cnt as u64;
- b.iter(|| {
- for _ in 0..cnt {
- buf.put_u8(b'x');
- }
- test::black_box(&buf);
- unsafe {
- buf.set_len(0);
- }
- });
-}
-
-#[bench]
-fn put_slice_vec_extend(b: &mut Bencher) {
- let mut buf = Vec::<u8>::with_capacity(256);
- let data = [33u8; 32];
-
- b.bytes = data.len() as u64 * 4;
- b.iter(|| {
- for _ in 0..4 {
- buf.extend_from_slice(&data);
- }
- test::black_box(&buf);
- unsafe {
- buf.set_len(0);
- }
- });
-}
-
-#[bench]
-fn put_u8_vec_push(b: &mut Bencher) {
- let mut buf = Vec::<u8>::with_capacity(256);
- let cnt = 128;
-
- b.bytes = cnt as u64;
- b.iter(|| {
- for _ in 0..cnt {
- buf.push(b'x');
- }
- test::black_box(&buf);
- unsafe {
- buf.set_len(0);
- }
- });
-}