嵌入式开发中常用的开源库

姓名:徐予康  学号:19020100223 学院:丁香二号书院

转自:https://blog.csdn.net/jack_ios/article/details/47256981

【嵌牛导读】嵌入式开发中常用的开源库

【嵌牛鼻子】开源库

【嵌牛提问】无

【嵌牛正文】

SQLite

SQLite是一款轻型的数据库。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。

源码地址:http://www.sqlite.org/

libjpeg

libjpeg是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现。

源码地址:http://sourceforge.net/projects/libjpeg/files/

libevent

Libevent 是一个用C语言编写的、轻量级的开源高性能网络库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD 和 Mac Os;支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select 和 kqueue 等;支持 I/O,定时器和信号等事件;注册事件优先级。

源码地址:https://github.com/nmathewson/Libevent

libcurl

libcurl主要功能就是用不同的协议连接和沟通不同的服务器。 libcurl当前支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当然你也可以使用PHP的ftp扩展), HTTP基本表单上传,代理,cookies,和用户认证。

源码地址:http://curl.haxx.se/

libiconv

libiconv库为需要做转换的应用提供了一个iconv()的函数,以实现一个字符编码到另一个字符编码的转换。libiconv在系统缺少多种多样的字符编码支持时,提供这样方面的支持。

源码地址:http://www.gnu.org/software/libiconv/

mcrypt/libmcrypt

一个功能强大的加密算法扩展库,在保证应用的应用性时,通过该扩展库的加密算法保证安全性

源码地址:http://mcrypt.sourceforge.net/

libpng

libpng可用于读写png文件

源码地址:http://libmng.com/pub/png/libpng.html

freetype

FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。支持单色位图、反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,但是采用面向对象的思想,因此,FreeType的用户可以灵活地对它进行裁剪。

源码地址:http://www.freetype.org/

jpegsrc

包含jpeg库,这些库用于读写jpeg文件

源码地址:http://ijg.org/

libxml2

libxml是linux平台下解析XML文件的一个基础库,现在很多实用软件都用XML格式的配置文件,所以也有必要学习一下。

源码地址:http://www.xmlsoft.org/

zlib

zlib 是一个压缩解压程序库

源码地址:http://www.zlib.net/

D-Bus

D-Bus是一个为应用程序间通信的消息总线系统, 用于进程之间的通信。

源码地址:http://www.freedesktop.org/wiki/Software/dbus/

pureftpd、bftpd、vsftpd

PureFTPd是一款专注于程序健壮和软件安全的免费FTP服务器软件。源码地址:http://www.oschina.net/p/pure-ftpd

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。源码地址:http://vsftpd.beasts.org/http://www.oschina.net/p/vsftpd

Bftpd 主旨成为一款高速、小巧而且配置方便的服务器 源码地址:http://sourceforge.net/projects/bftpd/files/bftpd/bftpd-3.2/bftpd-3.2.tar.gz/download

tinyhttpd、mini_httpd、Lighttpd、apache、nginx

tinyhttpd 是一个不到 500 行的超轻量型 Http Server,用来学习非常不错,可以帮助我们真正理解服务器程序的本质。源码地址:http://sourceforge.net/projects/tinyhttpd/

mini_httpd是一个小型的HTTP Server,功能丰富,作为嵌入式系统的server性能很不错,唯一的不好的地方是代码风格不是很好。源码地址:http://www.acme.com/software/mini_httpd/

Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。源码地址:http://www.lighttpd.net/

apache是世界排名第一的web服务器, 根据netcraft(www.netsraft.co.uk)所作的调查,世界上百分之五十以上的web服务器在使用apache. 源码地址:http://httpd.apache.org/download.cgi

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。源码地址:http://nginx.org/

其他嵌入式的http server很多,比如shttpd thttpd mathopd appweb goahead boa ,有兴趣的可以自己查文档学习。

mbedtls

Mbed TLS是一个C库,它实现了加密原语、X.509证书操作以及SSL/TLS和DTLS协议。它的代码占用空间小,适合于嵌入式系统。(可替代openssl)

源码地址:https://github.com/ARMmbed/mbedtls

备注已接触/使用过的开源库:SQLite、libevent、libiconv、libxml2、Nginx、zlib。

其他资料

嵌入式常用开源开发工具及库:https://blog.csdn.net/vertor11/article/details/79911113

一些嵌入式开发有用的github上的开源代码库:https://blog.csdn.net/u011559046/article/details/80172809

你可能感兴趣的:(嵌入式开发中常用的开源库)