Git Product home page Git Product logo

variants-toy's Introduction

Variants Toy

This is a prototype implementation of the algorithms in HTTP Representation Variants, and is expected to evolve with them.

Currently, it elides the header parsing, expecting the test data to contain pre-parsed header fields.

Run it like:

python2 variants.py test_encoding_.json

or just:

make

to run all tests.

The test format is a list of JSON objects, with the following members:

{
  "name": "test subject",               // A string that names the test 
  "expects": ["identity,en"],           // A list of normalised variant-ids that we expect to match
  "stored_responses": [                 // A list of HTTP responses in the cache.
    {                                   // Currently only the first is used.
      "variants": [                     // Header field name; must be lowercase
        ["Accept-Encoding", "gzip"],    // [field-name, field-value] tuples; any case for names
        ["Accept-Language", "en", "fr"]
      ],
      "variant-key": ["gzip,en"]        // Most responses will need both variants and variant-key
    }
  ],
  "request": {                          // The incoming request
    "accept-encoding": ["br"],          // Header field-names, field-values. Names need to be lc
    "accept-language": ["de"]           // Values are lists
  }
}

Regarding code quality - don't judge me.

variants-toy's People

Contributors

mnot avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  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.