#uapi #systemd #libeconf #econf

uapi-config

Rust语言的UAPI配置文件规范实现

1个不稳定版本

0.1.0 2024年4月5日

#266配置

AGPL-3.0-only

31KB
470

UAPI配置文件规范的Rust语言实现。

关于libeconf呢?

libeconf的优点

  • libeconf被其他项目使用,因此有更多的关注。

  • libeconf可以从发行版中加载,而不是需要将其与应用程序链接/捆绑。

  • libeconf采用MIT许可。此库仅采用AGPL-3.0许可。

此库的优点

  • libeconf的API不仅按照UAPI规范指定的顺序定位文件,而且还像它们包含简单的key <分隔符>行一样解析它们,并构建最终的合并配置。因此,它不能与使用不同语法的配置文件一起使用。在Rust生态系统特定情况下,通常使用更复杂的格式,如TOML。

    此库仅定位文件,并将其留给调用者来解析和合并它们。

  • 这是一个纯Rust库,具有完全安全的代码,且没有除libstd之外的其他强制依赖项。使用libeconf需要绑定到C库。

  • libeconf::econf_readConfig支持OS供应商根+临时根+系统管理员根,其中OS供应商根可由用户自定义,其他两个是硬编码的。这意味着它不能与其他组合(如OS供应商+临时+系统管理员+本地用户配置)一起使用。此库支持默认的OS供应商+临时+系统管理员,以及默认的OS供应商+临时+系统管理员+本地用户,以及任意用户提供的目录列表。

  • libeconf采用MIT许可。此库仅采用AGPL-3.0许可。

许可

AGPL-3.0-only

uapi-config

https://github.com/Arnavion/uapi-config

Copyright 2024 Arnav Singh

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, version 3 of the
License.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

依赖项

~0–10MB
~60K SLoC