An optimized version of the classify client endpoint in Normandy
Перейти к файлу
Mathieu Leplatre 2737e9de9e
Nit
2018-12-19 10:50:52 +01:00
.circleci Overwrite version.json in CI 2018-12-18 10:05:03 +01:00
src Nit 2018-12-19 10:50:52 +01:00
.dockerignore Updates to deploy in Google App Engine 2018-12-10 14:54:52 -08:00
.gitignore add README 2018-12-10 15:26:41 -08:00
.therapist.yml Clippy 2018-12-10 15:18:29 -08:00
Cargo.lock Enable Sentry for errors (fixes #13) 2018-12-18 10:00:32 +01:00
Cargo.toml Enable Sentry for errors (fixes #13) 2018-12-18 10:00:32 +01:00
Dockerfile Updates to deploy in Google App Engine 2018-12-10 14:54:52 -08:00
README.md Fix formatting of default settings values in README 2018-12-18 22:31:45 +01:00
app.yaml Updates to deploy in Google App Engine 2018-12-10 14:54:52 -08:00
version.json Add dev version.json 2018-12-18 10:04:54 +01:00

README.md

Classify Client

This is an optimized version of the classify client endpoint in Normandy.

Dev instructions

This is a normal Cargo project, so after cloning the repository, you can build and run it with

$ cargo build
$ cargo run

This project should run on the latest stable version of Rust. Unstable features are not allowed.

GeoIP Database

A GeoIP database is required. For development purposes, one can be obtained from the Maxmind website. The GeoLite2 Country database is recommended. It should be placed at the root of the repository.

Configuration

Via environment variables:

  • HOST: host (default: "localhost")
  • PORT: port number (default: "8080")
  • GEOIP_DB_PATH: path to GeoIP database (default: "./GeoLite2-Country.mmdb")
  • SENTRY_DSN: report errors to a Sentry instance (default: "")
  • VERSION_FILE: path to version.json file (default: "./version.json")

Tests

Tests can be run with Cargo as well

$ cargo test

Linting

Linting is handled via Therapist. After installing it, enable the git hooks using either therapist install or therapist install --fix. The --fix variant will automatically format your code upon commit. The variant without --fix will simply show an error and ask you to reformat the code using other means before committing. Therapist runs in CI.

The checks Therapist runs are:

  • Rustfmt
  • Clippy, using the clippy::all preset