14 releases
0.2.8 | Jul 19, 2022 |
---|---|
0.2.7 | Jul 19, 2022 |
0.1.8 | Apr 19, 2022 |
0.1.7 | Mar 3, 2022 |
0.1.6 | Feb 18, 2022 |
#2425 in Database interfaces
34 downloads per month
Used in fauna
115KB
3.5K
SLoC
This repository contains unofficial patterns, sample code, or tools to help developers build more effectively with Fauna. All Fauna Labs repositories are provided “as-is” and without support. By using this repository or its contents, you agree that this repository may never be officially supported and moved to the Fauna organization.
FQL parser
This is a Rust crate and NPM package that parses raw FQL queries into the wire protocol format.
Usage
Rust
To use the parser, add the following to your Cargo.toml
:
[dependencies]
fql-parser = "0.2.0"
Then, in your code, import the crate:
use crate::fql_parser;
fn main() {
/* ... */
}
The se
module contains the function to serialize FQL strings to JSON
let fql = "Add(2, 2)";
let json = fql_parser::se::serialize_fql_query(fql);
println!("{}", json);
{"add":[2,2]}
The des
module contains functions to deserialize JSON into special Fauna types or FQL strings
let json = r#"{
"@ref": {
"id":"101",
"collection": {
"@ref":{
"id": "things",
"collection": {
"@ref": { "id": "collections"}
}
}
}
}
}"#;
let fql = fql_parser::des::to_fql_string(json);
println!("{}", fql);
Ref(Collection("things"),"101")
JavaScript/TypeScript
TODO
Building and publishing the crate
Rust
cargo build
# Publish to https://crates.io/crates/fql-parser
cargo publish
NPM
make build
npm publish
Dependencies
~6MB
~116K SLoC