C語言有哪些優秀的開源庫?
如果想要了解c語言的開源庫的話,其實可以直接從github上搜一下就可以找到很多,這里介紹個地址
https://github.com/kozross/awesome-c
里面的分類很全,一些常用的c語言庫都收錄了。
像是redis,mysql,nginx,這種大名鼎鼎c程序我就不說了,我這里簡單介紹下,我曾經用過的幾個C跨平臺開源庫吧
1.libuv
http://libuv.org
這個是異步跨平臺的io庫,與之類似的還有libevent,libuv作為nodejs的底層實現庫,無論在使用方便程度上,還是性能和跨平臺集成方面都做的非常不錯,我平常做一些跨平臺的網絡通訊什么的都會使用這個庫,在android,ios,windows,linux中可以比較容易的編譯和運行。
2.mongoose
https://github.com/cesanta/mongoose
這是個非常強大的跨平臺c網絡通訊庫,只需要一個.h和一個.c文件就可以直接集成到你的項目中,使用起來非常方便,特別是你開發的程序需要對外提供http的webapi,或者做一個簡單的http文件服務器提供靜態web瀏覽,都能簡單的幾行代碼實現。它的缺點就是性能一般,通訊層是用select實現,能夠處理的連接數有限,但是如果僅僅是用在物聯網設備上,或者只是本機或局域網內幾臺機器之間進行通訊,那完全是可行的。同樣,代碼可以在android,ios,windows,linux上編譯運行通過。
3.duktape
https://duktape.org/
這是個嵌入式的跨平臺js引擎,也是只需要一個.c和一個.h文件就可以集成到你的項目中。對js標準的支持也非常不錯,完整的支持ES5和部分ES6。我就用mongoose和duktape組合開發過一個簡單的web服務框架,一直比較穩定的運行在一個商業項目中。另外由于duktape也可以很方便的集成到android和ios項目中,如果業務邏輯很多都用js寫的話,可以非常方便的實現代碼的熱更新。
4.libcurl
https://curl.haxx.se/libcurl/
這個我確定應該大多數c開發者都熟悉,涉及http客戶端的請求調用,基本上都離不開這個庫。
5.mbedtls
https://tls.mbed.org/
一個嵌入式的tls庫,可以和libcurl或者mongoose集成在一起提供https的支持
6.sqlite
https://sqlite.org
客戶端的嵌入式數據庫,android和ios客戶端開發可能再熟悉不過了,如果想在客戶端使用數據庫,確實是不二的選擇。