《HelloGitHub》第 74 期
HelloGitHub 分享 GitHub 上有趣、入门级的开源项目,每月 28 号更新一期。这里有好玩和入门级的开源项目、开源书籍、实战项目、企业级项目,让你用极短的时间感受到开源的魅力,对开源产生兴趣。
在文件有改动时自动触发任意命令的工具。采用 kqueue 或 inotify 事件通知接口监听文件改动事件,避免轮询造成的资源浪费,可用于实现自动编译、重启、测试、同步等功能
# 自动 make find src/ | entr sh -c 'make | head -n 20' # 自动重启服务 ls *.js | entr -r node app.js
完全免费的远程桌面管理工具。此项目为远程桌面协议(RDP)的一个开源实现,通过它可以轻松实现 macOS 或 Linux 远程操作 Windows 桌面系统反之亦可,使用起来十分方便和流畅。下载地址
英伟达开源的 Linux GPU 内核驱动。关于开源的原因网友们众说纷纭黑客勒索、被 Linus 骂的、拥抱开源,但无论如何这是件好事,至于这件事后续对 Linux 系统的影响就让我们拭目以待吧
开源的塔防游戏示例。此项目主要用来上手和学习基于 Unity 引擎的游戏框架 GameFramework,感兴趣的同学可以把玩一下。游戏共有五个关卡,玩家通过击杀敌人和建造能量塔获取资源,消耗能量建造防御塔阻止敌人攻击基地
《C++ Primer》中文版第 5 版的学习笔记。该项目不仅包含学习笔记还有课后习题的答案
开源桌面操作系统。一款披着复古外衣现代的类 Unix 开源操作系统。从内核到 Web 浏览器均采用 C++ 编写,没有依赖现成的第三方库,外观模仿 90 年代操作系统界面的风格,我认为这是一封极客致敬经典的情书
高性能 goroutine 池。实现了大规模下的 goroutine 调度和复用,从而节省资源提高执行效果。还有如任务提交、动态调整 pool 大小、查询运行状态等实用接口
开源的 API 测试工具。支持丰富的网络协议,涵盖接口测试、性能测试等测试类型的测试工具
- 多种网络协议:支持 HTTP(S)/HTTP2/WebSocket/RPC 等
- 多格式可选:测试用例支持 YAML/JSON/go test/pytest 格式
- 双执行引擎:同时支持 Golang/Python 两个执行引擎
- 一键部署:一条命令在 macOS/Linux/Windows 完成安装部署
- 网络性能采集:在场景化接口测试的基础上,可额外采集网络链路性能指标
捕获数据更改(CDC)的流式处理平台。可以监控数据库中的数据变动,把每一个行级别的数据改动,通过流的方式实时同步给其他服务。适用于更新缓存、更新搜索、双写等场景
开箱即用的权限管理系统。基于 SpringBoot 开发的后台管理系统,包含用户管理、部门管理、角色管理、登录日志、定时任务、服务监控等功能,可以用来快速构建 CMS、CRM、OA 等系统
一套开源的分布式数据库增强计算引擎。可将多种数据库转换为分布式数据库的生态系统,就是把多种不同类型的数据整合成对外是一个整体的数据库,即化零为整。充分合理地利用数据库的计算和存储能力,解决数据分片、数据加密、异构数据查询等痛点
类似 Excel 的电子表格组件。使用简单无需繁琐的配置,内置多种 Excel 常用功能,并且支持在线协同编辑
import React from 'react'; import ReactDOM from 'react-dom'; import { Workbook } from "@fortune-sheet/react"; import "@fortune-sheet/react/dist/index.css" ReactDOM.render( <Workbook data={[{ name: "Sheet1" }]} />, document.getElementById('root') );
掘金社区开源的 Markdown 编辑器组件。基于 Svelte 构建的 Markdown 编辑器组件,功能齐全还可以通过插件扩展功能,默认安全且兼容 SSR,适用于 React、Vue 和 Angular 框架
// React import { Editor, Viewer } from '@bytemd/react' import gfm from '@bytemd/plugin-gfm' const plugins = [ gfm(), // Add more plugins here ] const App = () => { const [value, setValue] = useState('') return ( <Editor value={value} plugins={plugins} onChange={(v) => { setValue(v) }} /> ) }
功能齐全的终端前端组件。用 TypeScript 编写的前端组件,提供了完整的终端功能、支持鼠标事件、丰富的 Unicode 支持。在众多流行开源项目中都能看到它的身影,比如 VS Code、Hyper 和 Theia 等
解决 Android 运行时权限的库。该项目本是作者写的一本书中的练手项目,后来经过不断优化和功能迭代,已经可以真正做到简化 Android 运行时权限处理的工作,所以就有了我们现在看到的 PermissionX。时至今日它依旧在持续更新,没有停下变得更好的脚步,或许这就是工匠精神的体现吧。中文文档
在线 SQL 审核平台。采用 Django+Bootstrap 框架开发而成,支持 MySQL、Oracle 等数据库的 SQL 上线、备份、慢日志查询等功能。在线尝试
模拟手写体中文的 Python 库。基于 PIL 开发实现的工具库,能够输出手写体中文的图片,支持自定义背景图
# coding: utf-8 from PIL import Image, ImageFont from handright import Template, handwrite text = "分享 GitHub 上有趣、入门级开源项目" template = Template( background=Image.new(mode="1", size=(1024, 2048), color=1), font=ImageFont.truetype("path/to/my/font.ttf", size=100), ) images = handwrite(text, template) for im in images: assert isinstance(im, Image.Image) im.show()
简单易用的 Python 版本管理工具。开发者有时候因为历史遗留问题,需要维护依赖不同 Pyhton 版本的项目,这时就需要安装和管理多个 Python 版本,这是一件十分痛苦的事情。而 pyenv 恰好完美地解决了这一痛点,它支持 global、local、shell 三种模式,开发者可以根据情况灵活地切换不同的 Python 版本,这一切仅需一条命令
安装 pyenv:brew install pyenv 安装 Python:pyenv install 3.10.4 切换版本:pyenv shell|local|global shell:当前 shell local:当前目录 global:全局
在 SSH 服务器时带上自己喜欢的 shell。你的 shell 里是不是塞满了快捷脚本、工具和颜色,但在 SSH 远程连接服务器时,你就会失去这一切。xxh 可以把你最喜欢的 shell 带到任何地方
Oh My Zsh:source xxh.zsh anyhost +I xxh-plugin-zsh-ohmyzsh +if +q xonsh:xxh anyhost +s xonsh
Rust 官方开源的 Markdown 电子书构建工具。类似 Gitbook 可以将 Markdown 文件制作成在线书籍,简单易用非常适合创建教程、课程材料、开源书籍等文稿
全面的机器学习教程库。一份包含 30 多个 Jupyter Notebook 的集合库,内容涵盖机器学习所需的 Python 基础,数据操作、清洗、分析、可视化常用的库和工具,以及经典机器学习、NLP、计算机视觉等算法,一份面面俱到的机器学习入门教程
用 SQL 开启机器学习的数据库。把机器学习引入 SQL 数据库将模型作为虚拟表(AI-table),从而省去了数据准备、预处理等步骤,可以直接用 SQL 查询时间序列、回归、分类预测的结果,实现简化机器学习开发流程的效果
专为程序员编写的英语学习指南。一位程序员提升英语水平的实践经验分享,还有相关训练方法和用到的工具,点击查看
Flutter 的 Android 浮动窗口插件。该插件能够让开发者使用 Flutter 完成浮动窗口的功能开发,同时无需任何原生 Android 开发的背景
谷歌开源的弹珠台游戏。使用 Flutter 和 Firebase 平台开发的弹珠台游戏,可运行在 Android、iOS、Windows、macOS、Linux 操作系统。在线试玩
国内公共仓库镜像的集合。该项目包含开发常用的库、软件、系统镜像地址以及使用的方法
- C 项目
- C# 项目
- C++ 项目
- CSS 项目
- Go 项目
- Java 项目
- JavaScript 项目
- Kotlin 项目
- PHP 项目
- Python 项目
- Ruby 项目
- Rust 项目
- Swift 项目
- 人工智能
- 其它
- 开源书籍