lino-env

Crates.iolino-env
lib.rslino-env
version0.1.0
created_at2026-01-06 23:51:16.124513+00
updated_at2026-01-06 23:51:16.124513+00
descriptionA Rust library to read and write .lenv files
homepage
repositoryhttps://github.com/link-foundation/lino-env
max_upload_size
id2027181
size56,660
Konstantin Diachenko (konard)

documentation

https://github.com/link-foundation/lino-env

README

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 instance
  • read() - Read and parse the .lenv file
  • write() - Write the current data to the file
  • get(key) - Get the last value for a key
  • get_all(key) - Get all values for a key
  • set(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 exists
  • delete(key) - Delete all values for a key
  • keys() - Get all keys
  • to_hash_map() - Convert to HashMap with last values

License

Unlicense

Commit count: 98

cargo fmt