#json-parser #dsl #json #parser #transformer #openfga

openfga-dsl-parser

OpenFGA 授权 DSL 的解析器和 JSON 转换器

1 个稳定版本

1.0.0 2022年7月31日

#2971解析器实现

Apache-2.0 协议

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