1 unstable release
| 0.1.0 | Jan 6, 2026 |
|---|
#742 in Configuration
Used in lino-arguments
51KB
1K
SLoC
lino-env (Rust)
A Rust library to read and write .lenv files.
What is .lenv?
.lenv files are environment configuration files that use : (colon-space) instead of = for key-value separation. This format is part of the links-notation specification.
Example .lenv file:
GITHUB_TOKEN: gh_abc123
TELEGRAM_TOKEN: 054xyz789
API_URL: https://api.example.com:8080
Installation
Add this to your Cargo.toml:
[dependencies]
lino-env = "0.1"
Usage
Basic Usage
use lino_env::LinoEnv;
// Create and write a new .lenv file
let mut env = LinoEnv::new(".lenv");
env.set("GITHUB_TOKEN", "gh_abc123");
env.set("API_KEY", "my_api_key");
env.write().unwrap();
// Read an existing .lenv file
let mut env = LinoEnv::new(".lenv");
env.read().unwrap();
// Get a value
if let Some(token) = env.get("GITHUB_TOKEN") {
println!("Token: {}", token);
}
Multiple Values per Key
.lenv files support multiple values for the same key:
use lino_env::LinoEnv;
let mut env = LinoEnv::new(".lenv");
// Add multiple values for the same key
env.add("ALLOWED_HOST", "localhost");
env.add("ALLOWED_HOST", "example.com");
env.add("ALLOWED_HOST", "api.example.com");
// Get the last value
assert_eq!(env.get("ALLOWED_HOST"), Some("api.example.com".to_string()));
// Get all values
let hosts = env.get_all("ALLOWED_HOST");
assert_eq!(hosts, vec!["localhost", "example.com", "api.example.com"]);
Convenience Functions
use lino_env::{read_lino_env, write_lino_env};
use std::collections::HashMap;
// Write using a HashMap
let mut data = HashMap::new();
data.insert("KEY1".to_string(), "value1".to_string());
data.insert("KEY2".to_string(), "value2".to_string());
write_lino_env(".lenv", &data).unwrap();
// Read into a LinoEnv instance
let env = read_lino_env(".lenv").unwrap();
println!("{:?}", env.get("KEY1"));
API Reference
LinoEnv
new(file_path)- Create a new LinoEnv instanceread()- Read and parse the .lenv filewrite()- Write the current data to the fileget(key)- Get the last value for a keyget_all(key)- Get all values for a keyset(key, value)- Set a key to a single value (replaces all)add(key, value)- Add a value to a key (allows duplicates)has(key)- Check if a key existsdelete(key)- Delete all values for a keykeys()- Get all keysto_hash_map()- Convert to HashMap with last values
License
Unlicense