summaryrefslogtreecommitdiff
path: root/vendor/httparse/src/simd/runtime.rs
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/httparse/src/simd/runtime.rs
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/httparse/src/simd/runtime.rs')
-rw-r--r--vendor/httparse/src/simd/runtime.rs57
1 files changed, 0 insertions, 57 deletions
diff --git a/vendor/httparse/src/simd/runtime.rs b/vendor/httparse/src/simd/runtime.rs
deleted file mode 100644
index c523a921..00000000
--- a/vendor/httparse/src/simd/runtime.rs
+++ /dev/null
@@ -1,57 +0,0 @@
-use std::sync::atomic::{AtomicU8, Ordering};
-use crate::iter::Bytes;
-use super::avx2;
-use super::sse42;
-
-const AVX2: u8 = 1;
-const SSE42: u8 = 2;
-const NOP: u8 = 3;
-
-fn detect_runtime_feature() -> u8 {
- if is_x86_feature_detected!("avx2") {
- AVX2
- } else if is_x86_feature_detected!("sse4.2") {
- SSE42
- } else {
- NOP
- }
-}
-
-static RUNTIME_FEATURE: AtomicU8 = AtomicU8::new(0);
-
-#[inline]
-fn get_runtime_feature() -> u8 {
- let mut feature = RUNTIME_FEATURE.load(Ordering::Relaxed);
- if feature == 0 {
- feature = detect_runtime_feature();
- RUNTIME_FEATURE.store(feature, Ordering::Relaxed);
- }
-
- feature
-}
-
-pub fn match_header_name_vectored(bytes: &mut Bytes) {
- super::swar::match_header_name_vectored(bytes);
-}
-
-pub fn match_uri_vectored(bytes: &mut Bytes) {
- // SAFETY: calls are guarded by a feature check
- unsafe {
- match get_runtime_feature() {
- AVX2 => avx2::match_uri_vectored(bytes),
- SSE42 => sse42::match_uri_vectored(bytes),
- _ /* NOP */ => super::swar::match_uri_vectored(bytes),
- }
- }
-}
-
-pub fn match_header_value_vectored(bytes: &mut Bytes) {
- // SAFETY: calls are guarded by a feature check
- unsafe {
- match get_runtime_feature() {
- AVX2 => avx2::match_header_value_vectored(bytes),
- SSE42 => sse42::match_header_value_vectored(bytes),
- _ /* NOP */ => super::swar::match_header_value_vectored(bytes),
- }
- }
-}