[英]Ultra-portable, small complex config file library in ANSI C?
我在ANSI C中尋找一個非常便攜,簡約/小的XML /配置語言庫,沒有外部依賴(或很少),編譯低於100K。 我需要它用於中等復雜的配置文件,它必須支持Unicode。
更多要求:
謝謝費拉斯。
這在某種程度上類似於這個問題: 嵌入式C項目是否有一個很好的小型XML解析器?
我能夠為C調整以下XML解析器庫的編譯標志,並在我的Ubuntu機器上減少了超過50%的大小。 Mini-XML是唯一接近您請求的內容:
對於這種用例,IMO協議緩沖區比XML更好,更好。 使用協議緩沖區,您可以獲得真實類型和模式,而無需在基礎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仍然有所改變。 如果你對此感到滿意,你現在可以嘗試潛水。 如果你喜歡更穩定的東西,至少要保持你的雷達。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.