开源项目集锦
健康生活
学习
CS
- TIM168/technical_books,技术书籍大杂烩
- 自学计算机科学,编程、计算机系统构造、算法与数据结构、数学知识、操作系统、计算机网络、数据库、编程语言与编译器、分布式系统
- CS 自学指南,包含工具、国外高质量 CS 课程、经典书籍推荐等
- build-your-own-x - What I cannot create, I do not understand
- libpku - 贵校课程资料民间整理
- Awesome lists about all kinds of interesting topics
- 一些数学/计算机课程收集列表
- 软件工程相关论文收集
操作系统
- How to Make a Computer Operating System
- Writing an OS in Rust - 用 Rust 写一个最小操作系统教程
- 如何 从零开始 用 Rust 语言写一个基于 RISC-V 架构的 类 Unix 内核
- 内核开发系列视频教程
- os-guide-cn - 从零开始制作一个操作系统
- Unix v6 操作系统评注
- 每个程序员都应该了解的内存知识
Linux
- 像小说一样品读 Linux 0.11 核心代码
- 系统管理员应该了解的 30 个 Linux 系统监视工具
- Linux eBPF 资料集锦
- Linux 启动过程分析
- Linux 系统动态追踪技术介绍
- The Linux Perf Master
- Linux 常用命令行小技巧
- Linux 操作系统内核学习
- Linux 内核学习资料
- 深入分析 Linux 内核源码
- Linux Kernel Crash Book
- 如何快准狠找到 Linux 系统内存的问题
- Linux 网络栈原理、监控与调优
- A journey into the Linux scheduler
- 编程语言是如何实现并发的之操作系统篇
- Linux 核心设计
算法
编程语言
通用
Project Based Learning - 基于工程实践的主流编程语言学习
C
C++
- C++ Developer Roadmap
- 在拥挤和变化的世界中茁壮成长:C++ 2006–2020 - C++ 之父 Bjarne Stroustrup 的 HOPL4 论文的中文版
- C++ Template 进阶指南
- C++ 并发编程指南
- Awesome Modern C++ - 现代 C++ 的资源集合
- Modern C++ Tutorial: C++11/14/17/20 On the Fly
- TinyWebServer - 轻量级 C++ Web 服务器实践及说明讲解
- C/C++ 技术面试基础知识总结
- C++ 那些事 - 从入门到进阶
- 30 天自制 C++服务器
- C++ Concurrency in Action 2ed 笔记 - C++11/14/17/20 多线程,掌握操作系统原理,解锁并发编程技术
- C++ 算法编程指南
- C++ 性能优化背后的方法论:TMAM
- Effective Modern C++
- Effective Modern C++ 解读笔记
- Modern Cpp Tricks,一些 C++ 相关的开发技巧
- Effective Debugging
- How to create portable Linux binaries (even if you need a recent compiler),如何创建可移植的 Linux 二进制文件
Shell
Python
- Python-programming-exercises - 100+ Python challenge programming exercises.
- Python - 100 天从新手到大师
- Python 源码剖析
- Python Cookbook in Chinese
Go
- Go 语言精进之路
- Go 语言设计哲学
- dariubs/GoBooks,Golang 书籍列表
Rust
- Rust 语言圣经(中文) - {在线阅读}
- rust-by-practice - Rust 实战习题集
- Rust API 编写指南
- 从零开发到上线 - Rust 后端 API 开发
- 嵌入式 Rust 之书
- Rust 标准库特性指南
- Rust for C++ Programmers
- Byron/gitoxide,纯 Rust 实现的 git
- theseus-os/Theseus,一个用 Rust 从头开始编写的新的试验性的操作系统
- TheAlgorithms/Rust,Rust 实现的各种算法
- Practice Toy OS - RISC-V - Rust,从零开始用 Rust 语言写一个基于 RISC-V 架构的类 Unix 内核
- Rust 源码分析
Javascript
数据库
- db-tutorial - 数据库教程,包含 MySQL、NoSQL、MongoDB、Elasticsearch、Redis 等
- 从零开始写数据库:500 行代码实现 LSM 数据库
- Let’s Build a Simple Database 使用 C 构建类 sqlite 数据库
- USE THE INDEX,面向开发者的数据库性能指导
存储
分布式
- DDIA,一本分布式系统、数据库、大数据处理的经典必读书籍
网络安全
- 面对网络安全从业者的知识库
- ipv6
- 不为人知的网络编程系列
- Hack The Box,一个动态增长的黑客社区,通过游戏化的实践培训体验,将你的网络安全技能提升到一个新的水平。在有效的实践培训中边做边学
- How to design a secure web API access for your website?
- Cyber Security Detection Frameworks,网络安全检测框架
- vulhub/vulhub,一个面向大众的开源漏洞靶场,无需 docker 知识,简单执行一条命令即可编译、运行一个完整的漏洞靶场镜像
游戏
其它
- 爬取你要的数据:爬虫技术
- tcpdump 使用总结
- 函数式编程指北
- School of SRE
- linkedin 出品的 SRE(Sites Reliability Engineer) 入门教程
- 101 包括 linux 基础、Git、linux 网络、python、数据库(关系数据库、nosql 和大数据的基础介绍)、系统设计、监控度量、安全相关的内容。
- 102 包括 linux 中高级(包括容器技术 docker、k8s)、网络、系统设计、排查故障和性能改进、持续集成等内容
- 树莓派编程实用教程
- Google 为数据工程师、机器学习工程师、云工程师、云架构师、数据分析师等提供的免费学习路线
- GDB 快速引用手册
- 推荐系统入门教程 - 需要具有机器学习基础
- Git 权威指南
- 中文技术文档写作风格指南
- 桌维网管实典
- How to Write a Git Commit Message
- 编程之道 中英双语版
- 搜索的原理 - 爬虫、索引、排序、检索的过程
- Side Project 指南 - 业余项目
- 做系统架构的一些原则
- 深入剖析 Kafka
- Why’s THE Design - 为什么这么设计系列
- The Mediocre Programmer - 平庸的程序员,一本如何成为更好的程序员的书
- An Engineer’s Best Tips for Writing Documentation Devs Love,如何编写开发者喜欢的文档
- SSH 教程,介绍 SSH(主要是它的实现 OpenSSH)的概念和基本用法,也可以当作手册查询
工具
编辑器
- Learn-Vim(the Smart Way) 中文翻译,从概念到进阶技巧
- VimSkill,通过 vim 处理文本
- Lapce - Rust 编写的开源编辑器,利用原生 GUI 和 GPU 渲染,支持 Window/Linux/macOS
- WerWolv/ImHex,一个 16 进制编辑器,面向逆向工程师、程序员和在凌晨 3 点工作时重视视网膜的人的十六进制编辑器
分析调试
- Bytehound - Linux 内存分析工具
- 可用于分析内存泄漏,查看内存消耗确切位置,识别临时分配和内存碎片分析。收集跟踪每个分配和释放,以及调用堆栈
- 支持导出多种格式:JSON、Heaptrack,自带 Web GUI 可用于分析
- rr - 一个轻量级记录、回放和调试应用程序执行的工具
- orbit - C/C++ 性能分析工具,可视化复杂应用程序的执行流程
- horsicq/XPEViewer,跨平台的 PE 文件查看/编辑器
- rapiz1/catp,纯 Rust 实现的小工具,显示某个后台程序的输出,原理是用 ptrace 拦截系统调用里的 syscall write
- 使用 GDB 和 DDD 进行愉快的调试
网络
- websocketd - 包装现有命令行程序并通过 websocket 访问的命令行工具
- 被包装的应用程序只需要处理标准输入输出,无需网络库,不限语言,即可由该命令行工具构建具有 websocket 功能的应用程序
- mermaid - 基于 Javascript 的文本化图表生成工具
其他
- qemu-user-static - 开启 Linux 多架构执行能力(基于 QEMU 和 binfmt_misc)的容器
- PlantUML - 从文本描述生成 UML 图,在线版本
- telegram-download-daemon - Telegram 大文件下载,作为第三方 Telegram 客户端实现,可作为后台进程进行下载
- frp - 内网穿透,支持 TCP/UDP/HTTP/HTTPS,支持 P2P
- sphinx - 文档生成工具,支持 Python/C++,支持多种输出格式 HTML/text/LaTeX/PDF
- remark - markdown 驱动的浏览器幻灯片工具
- reveal.js - 用于创建演示文稿的 HTML 演示框架
- jsonvisio - json 可视化
- jpegoptim - JPEG 文件压缩工具
- code2img
- linux 文件同步工具
- ByteDance IconPark,字节跳动图标资源库
- charmbracelet/gum,shell 脚本工具,包装了很多 shell 脚本里需要交互操作或格式化输出的工作
资源
- public-apis/public-apis,免费公开 API 收集
开源库
C/C++
网络
- libuv
- 跨平台的异步 IO 库,最初用于 Node.js,有多种第三方开发的语言绑定,包括 Lua/Python/Go/C++/C# 等等等
- 支持异步 TCP/UDP 套接字、异步 DNS 解析、异步文件和文件系统操作、文件系统事件、IPC(使用 Unix 域套接字和 Windows 命名管道)、子进程、线程池、信号处理、高精度时钟、线程和同步原语
- python-telegram-bot - Telegram Bot API 的纯 Python 封装
- crow - 用于 Web 的微服务框架
- workflow - C++ 并行计算和异步网络引擎
- cpr - libcurl 的 C++ 封装库,风格类似 Python Request 库
- ZLMediaKit/ZLMediaKit,一个基于 C++11 的高性能运营级流媒体服务框架
存储
GUI
- imgui - 可移植的即时模式 GUI 库
- raygui - 简单易用的即时模式 GUI 库
- juce-framework/JUCE,一个开源的跨平台 C++ 应用程序框架,用于创建高质量的桌面和移动应用程序
机器学习
其他
- CLI11 - C++11 命令行解析工具
- pugixml - XML 处理库
- linenoise - 最小 readline 替代库
- fmt - 格式化库,C++ 20 std::format 的实现,提供一种 C stdio 和 C++ iostream 的快速安全方案
- vincentlaucsb/csv-parser,csv 读、写、解析库
- google/flatbuffers,一个跨平台序列化库,旨在最大限度地提高内存效率。 允许直接访问序列化数据而无需先对其进行解析/解包,同时仍具有出色的向前/向后兼容性。
- lfreist/hwinfo,使用 C++ 获取硬件信息的跨平台解决方案
Go
Shell
Rust
- tui-rs - 用于构建终端用户界面和仪表盘的 Rust 库
- 并发编程工具集
- phiresky/sqlite-zstd,sqlite 压缩工具
- cloudwego/volo,字跳开源的一个高性能和强可扩展性的 Rust RPC 框架,可帮助开发人员构建微服务
- yewstack/yew,一个设计先进的 Rust 框架,目的是使用 WebAssembly 来创建多线程的前端 web 应用