Coder Social home page Coder Social logo

jonzhang3 / config-rs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mehcode/config-rs

0.0 0.0 0.0 737 KB

⚙️ Layered configuration system for Rust applications (with strong support for 12-factor applications).

License: Apache License 2.0

Rust 100.00%

config-rs's Introduction

config-rs

Rust Build Status Crates.io Docs.rs

Layered configuration system for Rust applications (with strong support for 12-factor applications).

  • Set defaults
  • Set explicit values (to programmatically override)
  • Read from JSON, TOML, YAML, INI, RON, JSON5 files
  • Read from environment
  • Loosely typed — Configuration values may be read in any supported type, as long as there exists a reasonable conversion
  • Access nested fields using a formatted path — Uses a subset of JSONPath; currently supports the child ( redis.port ) and subscript operators ( databases[0].name )

Please note this library

  • can not be used to write changed configuration values back to the configuration file(s)!
  • Is case insensitive and all the keys are converted to lowercase internally

Usage

[dependencies]
config = "0.13.1"

Feature flags

  • ini - Adds support for reading INI files
  • json - Adds support for reading JSON files
  • yaml - Adds support for reading YAML files
  • toml - Adds support for reading TOML files
  • ron - Adds support for reading RON files
  • json5 - Adds support for reading JSON5 files

Support for custom formats

Library provides out of the box support for most renowned data formats such as JSON or Yaml. Nonetheless, it contains an extensibility point - a Format trait that, once implemented, allows seamless integration with library's APIs using custom, less popular or proprietary data formats.

See custom_file_format example for more information.

More

See the documentation or examples for more usage information.

MSRV

We currently support Rust 1.70.0 and newer.

License

config-rs is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.

config-rs's People

Contributors

alerque avatar aruhier avatar boredstiff avatar bratsinot avatar chrifo avatar conradludgate avatar da-x avatar danieleades avatar dependabot[bot] avatar dlo9 avatar eisterman avatar frisoft avatar geal avatar geniusisme avatar ignatenkobrain avatar ijackson avatar impowski avatar ivanovaleksey avatar joelgallant avatar johnb8 avatar kali avatar kpcyrd avatar matthiasbeyer avatar mehcode avatar nickelc avatar szarykott avatar tyranron avatar vorner avatar xx avatar younessbird 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.