我在ANSI C中寻找一个非常便携,简约/小的XML /配置语言库,没有外部依赖(或很少),编译低于100K。 我需要它用于中等复杂的配置文件,它必须支持Unicode。
更多要求:
谢谢费拉斯。
这在某种程度上类似于这个问题: 嵌入式C项目是否有一个很好的小型XML解析器?
我能够为C调整以下XML解析器库的编译标志,并在我的Ubuntu机器上减少了超过50%的大小。 Mini-XML是唯一接近您要求的内容:
与XML相比,IMO Protocol Buffers对于这种用例来说是一个更好,更好的解决方案。 使用协议缓冲区,您可以获得真实类型和模式,而无需在基础XML之上对它们进行分层。 语法也更好。
// The schema file: can serve as documentation for what // configuration values are available. message MyAppConfig { // Set to control the port the app listens on. optional int32 port = 1 [default=1234]; // Set to control the local hostname. optional string hostname = 2 [default="localhost"]; }
然后用户的实际配置如下所示:
# I want to listen on a very high port. port: 50000
主协议缓冲库不符合您的标准,因为它是在C ++中并且非常大。 我正在研究一个更小的实现同样的upb (即“微”protobufs)。 它用~5k的ANSI C编写,编译为<50k。
协议缓冲区具有二进制和文本格式,它们是等效的。 我的库(尚)支持阅读文本格式,但您可以让用户使用Google标准工具将其配置的文本版本提前转换为二进制格式。 然后你的应用程序本身只需要读取二进制格式,并且可以只使用upb。
upb刚刚到了冒险用户可以尝试的地步,但它仍然有点粗糙,而且API仍然有所改变。 如果你对此感到满意,你现在可以尝试潜水。 如果你喜欢更稳定的东西,至少要保持你的雷达。
需要了解更多c/c++开发分享ANSI C中的超便携,小型复杂配置文件库?,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!
以上就是c/c++开发分享ANSI C中的超便携,小型复杂配置文件库?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/978994.html