GithubHelp home page GithubHelp logo

classicvalues / apollo-rs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from apollographql/apollo-rs

0.0 1.0 0.0 1.6 MB

Spec compliant GraphQL Tools in Rust.

License: Apache License 2.0

Rust 100.00%

apollo-rs's Introduction

apollo-rs

Rust tooling for low-level manipulation of the GraphQL language.

Tools included

This project is intended to house a number of tools related to the low-level workings of GraphQL according to the GraphQL specification. Nothing in these libraries is specific to Apollo, and can freely be used by other projects which need standards-compliant GraphQL tooling written in Rust. The following crates currently exist:

Please check out their respective READMEs for usage examples.

Status

apollo-rs is a work in progress. Please check out the ROADMAP for upcoming features we are working on building.

If you do end up trying out apollo-rs and run into trouble, we encourage you to open an issue.

Design Principles

  1. Prioritizing developer experience. Elegant and ergonomic APIs is the theme for Rust as a language, and we want to make sure that all component APIs we provide are aligned with these principles.

  2. Stability and reliability. Spec-compliant, and idempotent APIs which, when complete, can be used safely in enterprise-grade codebases.

  3. Diagnostics. The tools are to be written in a way that will allow us to produce detailed diagnostics. It does not panic or return early if there is a lexical or a syntactic error. Instead, the parser is meant to gather as much context and information as possible and return errors alongside the output that is valid. Coincidentally, this allows for easily debuggable code for those maintaining this project.

  4. Extensibility. The parser is written to work with different use cases in our budding Rust GraphQL ecosystem, be it building schema-diagnostics for Rover, or writing out query planning and composition algorithms in Rust. These all have quite different requirements when it comes to AST manipulation. We wanted to make sure we account for them early on.

License

Licensed under either of

at your option.

apollo-rs's People

Contributors

lrlna avatar geal avatar abernix avatar o0ignition0o avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.