- Notifications
You must be signed in to change notification settings - Fork45
Spec compliant GraphQL Tools in Rust.
License
Apache-2.0, MIT licenses found
Licenses found
apollographql/apollo-rs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This project is intended to house a number of tools related to the low-levelworkings of GraphQL according to theGraphQL specification. Nothing inthese libraries is specific to Apollo, and can freely be used by otherprojects which need standards-compliant GraphQL tooling written in Rust. Thefollowing crates currently exist:
apollo-compiler
- a library to manipulate, semantically analyze, and validate GraphQL schema definition and query languageapollo-parser
- a library to parse the GraphQL (used byapollo-compiler
)apollo-smith
- a test case generator to deterministically produce arbitrary GraphQL documents
Please check out their respective READMEs for usage examples.
apollo-rs
is a living project that keeps evolving and is being used in production.If you try outapollo-rs
and run into trouble, we encourage you to open anissue.
Prioritizing developer experience. Elegant and ergonomic APIs is thetheme for Rust as a language, and we want to make sure that all component APIswe provide are aligned with these principles.
Stability and reliability. Spec-compliant, and idempotent APIswhich can be used safely in enterprise-grade codebases.
Diagnostics. The tools are to be written in a way that will allow us toproduce detailed diagnostics. It does not panic or return early if there is alexical or a syntactic error. Instead, the parser is meant to gather as muchcontext and information as possible and return errors alongside the output thatis valid. Coincidentally, this allows for easily debuggable code for thosemaintaining this project.
Extensibility. The parser is written to work with different use cases inour budding Rust GraphQL ecosystem, be it building schema-diagnostics for Rover,or writing out query planning and composition algorithms in Rust. These all havequite different requirements when it comes to document manipulation. We wanted tomake sure we account for them early on.
apollo-rs
is tested on the latest stable version of Rust.Older version may or may not be compatible.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE orhttps://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT orhttps://opensource.org/licenses/MIT)
at your option.
About
Spec compliant GraphQL Tools in Rust.