apache / apache/arrow-rs-object-store

Introduce common configuration patterns for file/CLI/env-var usage

Open
#507 2 comments 2 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
322
Forks
212
Avg merge
5d 2h
Merged PRs (30d)
10

Description

**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**

Most users of this great crate will usually allow their users to configure bucket access. This includes things like bucket name, region, tokens or automatic environment variable parsing, and lots and lots of other parameters. Most of the users of this crate will not even be aware of the various configuration options available, nor do they want to be. Yet, if they get it wrong, some end users who need a very specific authentication mode or other non-so-common setup will suffer. This lib supports it, they know about it, but the specific app that uses this crate is not passing through the right config.

**Describe the solution you'd like**

Introduce a set of reusable components targeting all 3 usecases:
* configuration files - some serde-instrumented structs/enums that can parse yaml/toml/json files in the same way to allow any needed configuration
* CLI - clap-instrumented structs for the same
* env vars - this one seem to be mostly done - but would be good if it works well with the other two methods

**Describe alternatives you've considered**
Each user of this lib implement it by hand

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the crate's existing environment-variable configuration support and how configuration is exposed to users. Define the scope and shared behavior for configuration files, CLI arguments, and environment variables; done requires reusable components that keep these three methods consistent.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
developer-experience, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.