summaryrefslogtreecommitdiff
path: root/vendor/logos-codegen/README.md
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/logos-codegen/README.md
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/logos-codegen/README.md')
-rw-r--r--vendor/logos-codegen/README.md115
1 files changed, 0 insertions, 115 deletions
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 @@
-<img src="https://raw.githubusercontent.com/maciejhirsz/logos/master/logos.svg?sanitize=true" alt="Logos logo" width="250" align="right">
-
-# 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.