conf
Go библиотека для чтения конфигурационных файлов в формате .conf.
Установка
go get go.neonxp.ru/conf
Особенности формата
- Простые присваивания:
key = value; - Строковые значения:
"text"или'text' - Многострочные строки:
`text` - Числовые значения: целые и дробные, включая отрицательные
- Булевы значения:
true/false - Директивы/команды:
directive arg1 arg2; - Групповые директивы с блоками кода:
directive { ... } - Комментарии от
#до конца строки - Поддержка кириллицы и UTF-8
Пример использования
package main
import (
"fmt"
"go.neonxp.ru/conf"
)
func main() {
doc, err := conf.LoadFile("./config.conf")
if err != nil {
panic(err)
}
// Получение значения по ключу
values := doc.Get("my_key")
fmt.Println(values)
// Получение команд по имени
commands := doc.Commands("directivename")
fmt.Println(commands)
// Все переменные
vars := doc.Vars()
// Все элементы документа
items := doc.Items()
}
Пример конфигурационного файла
# Пример конфигурации
# Простое присваивание
simple_key = value;
# Многострочное присваивание
string_key =
"value"
'string';
# Многострочные строки (backticks)
multiline_string = `
multiline
string
123
`;
# Числа и булевы значения
int_key = -123.456;
bool_key = true;
# Директивы
expression1 argument1 "argument2" 123;
# Групповая директива
group_directive_without_arguments {
expression1 argument2 "string" 123 true;
expression2 argument3 "string111" 123321 false;
children_group "some argument" {
# Вложенная группа
}
}
# Групповая директива с аргументами
group_directive_with_argument "argument1" 'argument2' {
child_val = "children value";
}
API
Функции
LoadFile(filename string) (*model.Doc, error)- загрузка конфигурации из файлаLoad(name string, input []byte) (*model.Doc, error)- парсинг конфигурации из байтов
Методы *model.Doc
Get(key string) Values- получить значения по ключуCommands(name string) Commands- получить команды по имениVars() map[string]Values- получить все переменныеItems() []any- получить все элементы документа
Требования
- Go 1.25+
Лицензия
См. файл LICENSE
