From 45df4d0d9b577fecee798d672695fe24ff57fb1b Mon Sep 17 00:00:00 2001 From: mo khan Date: Tue, 15 Jul 2025 16:37:08 -0600 Subject: 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. --- vendor/logos-codegen/README.md | 115 ----------------------------------------- 1 file changed, 115 deletions(-) delete mode 100644 vendor/logos-codegen/README.md (limited to 'vendor/logos-codegen/README.md') diff --git a/vendor/logos-codegen/README.md b/vendor/logos-codegen/README.md deleted file mode 100644 index ba0937ff..00000000 --- a/vendor/logos-codegen/README.md +++ /dev/null @@ -1,115 +0,0 @@ -Logos logo - -# Logos - -![Test](https://github.com/maciejhirsz/logos/workflows/Test/badge.svg?branch=master) -[![Crates.io version shield](https://img.shields.io/crates/v/logos.svg)](https://crates.io/crates/logos) -[![Docs](https://docs.rs/logos/badge.svg)](https://docs.rs/logos) -[![Crates.io license shield](https://img.shields.io/crates/l/logos.svg)](https://crates.io/crates/logos) - -_Create ridiculously fast Lexers._ - -**Logos** has two goals: - -+ To make it easy to create a Lexer, so you can focus on more complex problems. -+ To make the generated Lexer faster than anything you'd write by hand. - -To achieve those, **Logos**: - -+ Combines all token definitions into a single [deterministic state machine](https://en.wikipedia.org/wiki/Deterministic_finite_automaton). -+ Optimizes branches into [lookup tables](https://en.wikipedia.org/wiki/Lookup_table) or [jump tables](https://en.wikipedia.org/wiki/Branch_table). -+ Prevents [backtracking](https://en.wikipedia.org/wiki/ReDoS) inside token definitions. -+ [Unwinds loops](https://en.wikipedia.org/wiki/Loop_unrolling), and batches reads to minimize bounds checking. -+ Does all of that heavy lifting at compile time. - -## Example - -```rust -use logos::Logos; - -#[derive(Logos, Debug, PartialEq)] -#[logos(skip r"[ \t\n\f]+")] // Ignore this regex pattern between tokens -enum Token { - // Tokens can be literal strings, of any length. - #[token("fast")] - Fast, - - #[token(".")] - Period, - - // Or regular expressions. - #[regex("[a-zA-Z]+")] - Text, -} - -fn main() { - let mut lex = Token::lexer("Create ridiculously fast Lexers."); - - assert_eq!(lex.next(), Some(Ok(Token::Text))); - assert_eq!(lex.span(), 0..6); - assert_eq!(lex.slice(), "Create"); - - assert_eq!(lex.next(), Some(Ok(Token::Text))); - assert_eq!(lex.span(), 7..19); - assert_eq!(lex.slice(), "ridiculously"); - - assert_eq!(lex.next(), Some(Ok(Token::Fast))); - assert_eq!(lex.span(), 20..24); - assert_eq!(lex.slice(), "fast"); - - assert_eq!(lex.next(), Some(Ok(Token::Text))); - assert_eq!(lex.slice(), "Lexers"); - assert_eq!(lex.span(), 25..31); - - assert_eq!(lex.next(), Some(Ok(Token::Period))); - assert_eq!(lex.span(), 31..32); - assert_eq!(lex.slice(), "."); - - assert_eq!(lex.next(), None); -} -``` - -For more examples and documentation, please refer to the -[Logos handbook](https://maciejhirsz.github.io/logos/) or the -[crate documentation](https://docs.rs/logos/latest/logos/). - -## How fast? - -Ridiculously fast! - -```norust -test identifiers ... bench: 647 ns/iter (+/- 27) = 1204 MB/s -test keywords_operators_and_punctators ... bench: 2,054 ns/iter (+/- 78) = 1037 MB/s -test strings ... bench: 553 ns/iter (+/- 34) = 1575 MB/s -``` - -## Acknowledgements - -+ [Pedrors](https://pedrors.pt/) for the **Logos** logo. - -## Thank you - -**Logos** is very much a labor of love. If you find it useful, consider -[getting me some coffee](https://github.com/sponsors/maciejhirsz). ☕ - -If you'd like to contribute to Logos, then consider reading the -[Contributing guide](https://maciejhirsz.github.io/logos/contributing). - -## Contributing - -**Logos** welcome any kind of contribution: bug reports, suggestions, -or new features! - -Please use the -[issues](https://github.com/maciejhirsz/logos/issues) or -[pull requests](https://github.com/maciejhirsz/logos/pulls) tabs, -when appropriate. - -To release a new version, follow the [RELEASE-PROCESS](RELEASE-PROCESS.md) - -## License - -This code is distributed under the terms of both the MIT license -and the Apache License (Version 2.0), choose whatever works for you. - -See [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) for details. -- cgit v1.2.3