C/C++开源库推荐
C/C++开源库推荐
主要都是平常用到的,包含windows开发、android开发、后台开发、音视频开发、深度学习等等最后还附带几个其他语言开发的比较好的项目
GUI开发
- qt 跨平台开发库,内部封装了各种跨平台工具,但是大多数情况下都被用作开发跨平台客户端
- imgui 基于opengl/dx编写的GUI库,挺简单也挺好用的
- electron C++/NodeJS开发的跨平台GUI库,感觉其实就是简化版的chrome并做了某些功能的增强,分为main/render两部分,ui布局全是html/js/ts/vue/jsx,轻轻松松就可以开发出一个很漂亮的界面,毕竟前端模板太多了,可以配套用nodejs调用C++那一套,回调回C++混合开发,对执行效率要求不高的可以用
- sdl 跨平台GUI开发库,scrcpy用的就是这个
- SFML 跨平台的GUI库,以前开发游戏时写了一个demo,用了一次
- duilib 美化MFC项目
- skia google开源的gui库,android/chrome的UI都是用这个画的
- wxwidgets audacity好像用的就是这个gui库
- boden android/ios gui库,纯C++开发
- elements 跨平台ui库
远程控制
- freerdp rdp远程控制,在windows上还是mstsc最好用,linux/mac可以考虑freerdp
- aspia p2p远程工具,研究过其中代码挺不错的
- scrcpy PC控制android手机,需要打开adb
- synergy 效率工具,用一台机器共享鼠标键盘控制多台其他计算机,gui配置要激活,我一般直接用控制台启动,具体配置及启动方式请移步synergy控制台启动
- QtScrcpy 将synergy的gui用QT重写了并做了增强
- tigervnc 开源的vnc客户端与服务端
音视频开发
- ffmpeg 从事音视频开发必备库,avformat混流分流何种协议封装,avcodec音视频编辑器封装,ffplay.exe 是一个万能播放器,ffmpeg.exe 是个超级音视频处理工具,格式工厂就是把这个工具封装了一个界面,ffprobe码流分析工具
- openh264 思科开源的h264编解码库,号称最快,没有具体测试过
- x264 h264编解码库
- libvpx vp8/vp9编解码库
- vlc videolan的视频播放器,可提供api接口调用很方便
- QtAV 将ffmpeg封装成一个Qt播放器组件,在qt中用很方便
- rlottie lottie动画播放库,以前写QT项目时用到了,不过qt现在自己也有lottie播放组件了
音视频会议
- webrtc google开源的为浏览器提供实时通话的C++库,在浏览器上提供了一套接口,很方便的实现p2p视频通话,最近几年因为疫情这个库被大量用于音视频会议系统
- janus 纯C开发的音视频会议服务器,很多公司的服务器都是以这个为基础版本改出来的
- licode C++/js开发的音视频会议服务器,同样被很多公司拿出来用
- mediasoup 基于webrtc的 sfu服务器,以库的形式开放出来,可以嵌入自己的项目中
- media-server 基于webrtc的服务器
- freeswitch voip视频会议服务器
- kamailio sip注册服务器,编译安装配置好以后,下载个linphone就可以局域网视频通话,配置个rtpengine也可以转发rtp视频流
- osip sip信令封装库
- exosip osip的C++封装
- pjsip sip信令封装库
- jrtplib rtp封装库,对接国标GB28181用过
- ortp linphone用到的rtp封装库
压缩库
- p7zip 俄罗斯同志开发的压缩解压算法库,并提供安装程序,很出名养了一大批同类软件
- libzip 传统的zip压缩解压缩库
计算机视觉/深度学习
- opencv intel开源的图像处理库,里边包含了何种图像处理的算法,简单的人脸识别,抠图,图像拼接,边缘检测等等,还有dnn模块可以加载其他深度学习框架训练的模型进行推理,内部封装了ffmpeg,libjpg,libpng,支持图像io,视频io,很强大的C++计算机视觉库
- dlib 通用工具库,包含人脸识别/检测 json解析,网络,GUI等功能,里边包含很多功能
- PaddlePaddle 百度开源的深度学习框架,没有用这个训练过东西
- pytorch facebook开源的深度学习框架,目前学术界最流行的
- tensorflow google开源的深度学习框架
- darknet 目标检测方面的神,可惜原作者已放弃这方面的研究,现在已经有pytorch实现的yolov5,yolov7了,可以用更少的数据训练出不错的模型
- mxnet 亚马逊在用的深度学习框架
- onnxruntime 微软开源的深度学习推理框架,配合onnx使用
- caffe 贾扬清开发的深度学习框架,以前很多人都用这个,后来tensorflow出来后,大家纷纷开始转python用tensorflow
- mediapipe google开源的推理框架,谁用谁知道,确实是快
- ncnn 腾讯开源的推理框架,移动端很快
- mnn 阿里开源的推理框架
- mace 小米开源的模型推理框架
- Paddle-Lite 百度开源的推理框架
- lite.ai.toolkit 把一些推理框架做了封装的工具库
- libfacedetection yushiqi开源的人脸检测工具
- SeetaFace 好像是中科院某位教授开源的项目,检测识别效果不错,拿来即用的项目,当时用了里边的人脸检测确实是最快的
语音识别/深度学习
- kaldi 语音识别方面必知必会的库,以前研究过一段时间,程序不怎么用修改,需要修改shell脚本,而且训练的比较慢,我所属的公司都是快节奏的公司,后来就直接改用其他公司产品了,就再没有研究过
- wenet 国内某公司开源的语音识别系统,使用pytorch推理,效果比自己训练的kaidi好
- PaddleSpeech 百度开源的语音识别项目,效果比wenet好
- DeepSpeech 语音识别项目
- audacity 语料分析调整工具
- portaudio audioio工具
服务器
- nginx 俄罗斯同志开发的http服务器,代理服务器,还支持各种协议,用过的都说好,不过现在属于美国公司了
- srs 以前用他当做rtmp服务器
- ZLMediaKit 媒体服务器
- redis 缓存服务器,用来存储临时变量很方便,与db协同使用
- httpd apache开源的web服务器
- lighttpd 轻量级的web服务器
- memcached 缓存服务器,类似于redis
- kbengine C++开发的游戏服务器
游戏
- cocos2d-x cocos2d-x是一个C++开发的跨平台游戏开发库,现在游戏开发用cocos的应该比较少,大部分都是unity/ue4
- UnrealEngine 渲染效果最好的游戏引擎
直播
- obs-studio 很厉害的推流工具,使用qt开发的界面,UI设计的很漂亮,使用也特别简单,可以录屏,虚拟相机,推流,ndi等功能,插件化开发代码也很不错
IM工具
- tdesktop telegramdesktop官方的桌面客户端,编译起来比较费劲,代码和功能都优秀
- teamgram-tdesktop 开源teamgram-server开的tdesktop分支
- flamingo 开源im,包含server desktop android三个子项目
序列化
- protobuf 很常用的序列化工具,具有比json占用空间小,编解速度快的特点
- json modern c++开发的json解析库
- jsoncpp c++开发的json解析库
- tinyxml2 C++开发的xml解析库
- rapidjson 腾讯开源的json解析库
- pugixml 支持xpath的xml解析库
网络库
- libevent event驱动的跨平台网络库
- libuv 专门为nodejs开发的event库,是个独立的项目可以单独拿来用
- wangle facebook开源的网络库,根据java netty架构设计的,习惯netty的可以试试
- muduo reactor模式网络库
- grpc google开源的rpc项目
- brpc 百度开源的rpc项目,捐给了apache基金会,据说很强
- asio modern C++实现的网络库
- thrift apache基金会旗下的rpc项目
- rpclib 以前想找个小的rpc项目研究,就研究的这个
- crow modern c++ web服务器,类似于flask
- curl http客户端项目
- librdkafka 读写kafka服务器的client,以前搞大数据是用过
- zmq 与其他mq项目不同,zmq是以库的形式提供
- live555 在接入rtsp相机用过的项目
数据库
- postgresql 很流行的sql服务器
- mysql 项目中用的最多的sql服务器
- mongodb 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
- sqlite 一款轻型的数据库,一般嵌入到项目内部
- leveldb google开源的非常高效的kv数据库
- mmkv 腾讯开源的高效kv数据库
加密解密
- openssl 加密解密库
- boringssl google从openssl中分离出来的加密解密库
- mbedtls 嵌入式项目中经常用的加密解密库
虚拟机
- qemu ffmpeg作者开源的模拟器,据说可以达到真机效果
- virtualbox oracle开源的x86模拟器
- botchs x86模拟器
- anbox 感觉像是一个把android虚拟机跑在linux上的东西,类似于docker,把每个安卓程序轻量级的跑在x86 linux主机上,android上的每个程序直接绘制在linux gui上
编译器
- gcc gcc编译器
- llvm llvm编译套件
工具库
- folly facebook开源的基础库
- abseil-cpp google开源的基础库
- boost boost工具库
- concurrentqueue 并发队列
构建工具
- cmake 跨平台构建工具,用的最广泛的工具,android/linux/windows几乎哪都再用
- ninja google工程师开源的构建工具类似于make
- vcpkg 相当于ubuntu上的apt-get install吧,只不过,vcpkg是下载编译安装到仓库,并且需要配合cmake使用
跨平台项目
- chromium chrome浏览器开源项目,很多项目都是这个项目的子项目
- v8 chromium项目的子项目
- nodejs 基于v8开发的让js独立于浏览器运行的开发平台
无分类工具
- TrafficMonitor 计算机网速流量检测工具,cmake构建的版本TrafficMonitor
- TranslucentTB 状态栏透明
golang项目
- frp 代理工具将局域网主机暴露到公网上,远程办公必备
- caddy nginx的golang版本
- syncthing 文件同步工具
- docker 轻量级虚拟机,相当于从软件层面的虚拟化,很方便
- k8s google开源的用于管理云平台中多个主机上的容器化的应用
- minikube k8s的单机版本
- Open-IM-Server 微信前团队开源的im服务器
- teamgram-server golang开发的开源telegram sever
rust项目
- rustdesk rust开发的远程客户端,服务端同样开源
- yew rust前端开发框架类似于react
- tauri 类似于electron,不过速度性能都比electron强
ts/js项目
- simple-peer 对webrtc接口做了封装,使调用更简单了
- deskreen 基于webrtc的投屏器,通过浏览器将桌面投到其他设备上
c#项目
- Wox windows启动器
java/kotlin项目
- dbeaver java开发的数据库连接客户端
- libgdx 基于java的跨平台游戏开发框架
python项目
- flask python web引擎
- django python web引擎
- scrapy 爬虫引擎功能很全
dart项目
- dio dart http网络库
- Best-Flutter-UI-Templates flutter开发的跨平台界面,在andriod/windows跑过,ui设计的不错,就是给人一种卡顿的感觉
php项目
- nextcloud 私人网盘,docker部署起来很方便
- zentaopms 开源项目管理软件
相关文章:
C/C++开源库推荐
C/C开源库推荐 主要都是平常用到的,包含windows开发、android开发、后台开发、音视频开发、深度学习等等最后还附带几个其他语言开发的比较好的项目 GUI开发 qt 跨平台开发库,内部封装了各种跨平台工具,但是大多数情况下都被用作开发跨平台…...

git常用命令速查表
1.git add -u [<路径>]: 把<路径>中所有跟踪(tracked)文件中被修改过或已删除文件的信息添加到索引库。它不会处理未跟踪(untracked)的文件。省略<路径>表示:即当前目录。 2.git add -a [<路径&…...
让两个文件夹里的图片名字一模一样
为了做测试集,对应数据和真值 import os import datetimeimage_names os.listdir(r\Images) #print(image_names) #print(len(image_names))mask_names os.listdir(rG:\Mask) #print(mask_names) #print(len(mask_names))#根据你提供的文件名排序结果来看,问题可…...

会议OA系统会议管理模块开发思路(layui搭建)
目录 一.为什么要进行开发 1.开发目的 2.项目流程 A.发起会议请求过程 1.首先实现我们的多选下拉框功能! 2.时间组件功能,并且提交我们新增加的会议内容 3.在进行发起会议编码时遇到的问题,BUG 3.1.有点时候js访问不到路径 3.2在增加…...

rsync 远程同步
目录 一、Rsync 简介 二、同步方式 备份的方式 三、常用Rsync命令 四、配置源的两种表达方法 五、配置服务端与客户端的实验 启动 rsync 服务程序 发起端(192.168.158.21) 编辑 六. 发起端(客户端)配置 rsyncinotify c…...

PostgreSQL数据库中,查询时提示表不存在的解决办法
最近遇到一个奇怪的问题,以前从来没有遇到过,在postgres SCHEMA下执行select * from table1语句时,提示表不存在,而实际这个表确是存在的,只不过是在public SCHEMA下。在public SCHEMA下执行这个sql语句是没有问题的。…...

视频传输网安全防护体系
在电脑、手机信息安全保护得到广泛关注和普及的今天,监控摄像头等设备的安全防护仍为大众所忽略,大量视频监控网络的前端设备和数据没有任何保护,完全暴露在互联网中。 前端IP接入设备与后端业务系统处于直连状态,一旦有攻击者或…...

C# Blazor 学习笔记(1):Blazor基础语法,组件化和生命周期
文章目录 前言基础语法路由Page 页面元素条件生成if / elseforforeach 绑定参数绑定(赋值,单向)参数绑定(双向)事件绑定字典绑定 attributes 组件化如何使用Parameter 参数注入使用回调函数组件声明回调组件注入回调组…...

flutter 导出iOS问题2
问题1:The Swift pod FirebaseCoreInternal depends upon GoogleUtilities, which does not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries) 参考 正如上图报错第三方…...
syn报文什么时候会被丢弃?
开启tcp_tw_recycle且在NAT下 tcp_tw_recycle重复利用time_wait sockets,会记录最近的连接时间戳,并丢弃远程主机(PAWS机制)所有不严格大于该时间戳的报文。这意味着如果主机在nat下,那么该nat下所有设备将会受影响 TCP半连接队列满了 在半…...

【C++】开源:Linux端V4L2视频设备库
😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Linux端V4L2视频设备库。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下…...

基于数据驱动的多尺度表示的信号去噪统计方法研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
【Golang】Golang进阶系列教程--Go 语言 map 如何顺序读取?
文章目录 前言现象原因如何顺序读取推荐阅读 前言 Go 语言中的 map 是一种非常强大的数据结构,它允许我们快速地存储和检索键值对。 然而,当我们遍历 map 时,会有一个有趣的现象,那就是输出的键值对顺序是不确定的。 现象 先看…...

伊语IM即时通讯源码/im商城系统/纯源码IM通讯系统安卓+IOS前端纯原生源码
伊语IM即时通讯源码/im商城系统/纯源码IM通讯系统安卓IOS前端纯原生源码, 后端是java源码。...
C++推理
YOLOv5 OpenCV DNN C导出的 ONNX 模型示例的推理: https://github.com/Hexmagic/ONNX-yolov5/blob/master/src/test.cpphttps://github.com/doleron/yolov5-opencv-cpp-python YOLOv5 OpenVINO C推理示例: GitHub - dacquaviva/yolov5-openvino-cpp-p…...

Day10-作业(SpringBootWeb案例)
作业1:完成课上预留给大家自己完成的功能 【部门管理的修改功能】 注意: 部门管理的修改功能,需要开发两个接口: 先开发根据ID查询部门信息的接口,该接口用户查询数据并展示 。(一定一定先做这个功能) 再开发根据ID…...
源码阅读:p-limit
源码阅读:p-limit 源码阅读:p-limit简介源码解读学习与收获 源码阅读:p-limit 简介 p-limit是一个用于限制并发操作的包,它可以控制同时执行的异步操作数量。它提供了一种简单的方式来管理并发操作,以避免系统资源过…...

目标检测-击穿黑夜的PE-YOLO
前言 当前的目标检测模型在许多基准数据集上取得了良好的结果,但在暗光条件下检测目标仍然是一个巨大的挑战。为了解决这个问题,作者提出了金字塔增强网络(PENet)并将其与YOLOv3结合,构建了一个名为PE-YOLO的暗光目标检…...

优化性能压力测试的关键策略和技巧
在现代软件开发中,性能压力测试是不可或缺的一环。它可以帮助开发团队评估系统在负载压力下的性能表现,识别潜在的性能瓶颈,并采取适当的措施进行优化。然而,仅仅进行性能压力测试是不够的,关键的在于如何优化测试的过…...

VMware Linux 可视化增加磁盘
1、VMware 增加磁盘 2、disks挂载磁盘 此处我挂载的是20G磁盘,截图只是用5G的做过程演示例子。 3、验证挂载磁盘...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...

基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...