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、验证挂载磁盘...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...

springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...