mozilla-services / remote-settings-client

Remote-Settings Client built using Rust
Mozilla Public License 2.0
6 stars 7 forks source link
mozilla remote-settings rust

Remote Settings Client

A Rust Remote Settings Client to fetch collection data.

Available features:

Relies on Mozilla's viaduct for its pluggable HTTP backend (eg. reqwest or FFI on Android).

See also the Storage and Verification traits to extend or customize the client behaviour.

Quick start

Cargo.toml:

[dependencies]
remote-settings-client = { version = "0.1", features = ["ring_verifier"] }
viaduct = { git = "https://github.com/mozilla/application-services", rev = "v75.2.0"}
viaduct-reqwest = { git = "https://github.com/mozilla/application-services", rev = "v75.2.0"}

Minimal example:

use remote_settings_client::Client;
pub use viaduct::set_backend;
pub use viaduct_reqwest::ReqwestBackend;

fn main() {
  set_backend(&ReqwestBackend).unwrap();

  let client = Client::builder()
    .collection_name("search-config")
    .build();

  match client.get() {
    Ok(records) => println!("{:?}", records),
    Err(error) => println!("Error fetching/verifying records: {:?}", error),
  };
}

See also our demo project!

Documentation

Crate documentation

Logging

Using env_logger, the log level can be set via an environ variable:

RUSTLOG={debug/info} cargo run

fn main() {
  env_logger::init() // initialize logger
  ..
}

License

Licensed under Mozilla Public License, Version 2.0 (https://www.mozilla.org/en-US/MPL/2.0/)