1 个稳定版本
1.0.0 | 2022年7月31日 |
---|
#2971 在 解析器实现
33KB
849 行
OpenFGA DSL 解析器
OpenFGA DSL 解析器提供了将 DSL 文件字符串输入解析为抽象语法树(AST)表示的工具,以及将它们转换为 JSON 表示的工具。
这个库旨在作为使用 OpenFGA 进行授权解决方案的服务的一个实用程序,但这些服务需要一种从他们的 DSL 转换到 HTTP API 所期望的 JSON 格式的途径。一个 TypeScript 库 可以执行类似操作,但这个库旨在针对 Rust,同时作为其他潜在语言的绑定基础。
使用
use openfga_dsl_parser::{json, Parser};
let input = "type group
relations
define member as self
type resource
relations
define writer as self
define reader as self but not writer";
let mut parser = Parser::new(input);
let doc = parser.parse_document()?;
let json = json::JsonTransformer::new(&doc).serialize();
lib.rs
:
OpenFGA DSL 解析器
OpenFGA DSL 解析器提供了将 DSL 文件字符串输入解析为抽象语法树(AST)表示的工具,以及将它们转换为 JSON 表示的工具。
这个库旨在作为使用 OpenFGA 进行授权解决方案的服务的一个实用程序,但这些服务需要一种从他们的 DSL 转换到 HTTP API 所期望的 JSON 格式的途径。一个 TypeScript 库 可以执行类似操作,但这个库旨在针对 Rust,同时作为其他潜在语言的绑定基础。
使用
use openfga_dsl_parser::{json, Parser};
let input = "type group
relations
define member as self
type resource
relations
define writer as self
define reader as self but not writer";
let mut parser = Parser::new(input);
let doc = parser.parse_document()?;
let json = json::JsonTransformer::new(&doc).serialize();
依赖关系
~355–750KB
~17K SLoC