下拉刷新
目录

《HelloGitHub》第 63

HelloGitHub 分享 GitHub 上有趣、入门级的开源项目,每月 28 号更新一期。 这里有好玩和入门级的开源项目、开源书籍、实战项目、企业级项目,让你用极短的时间感受到开源的魅力,对开源产生兴趣。

提示:点击 可以按照对应「分类」查看月刊。
C 项目
Star 4.1kFork 585Watch 146

用 C 语言实现的 GBA 模拟器。唤起你童年回忆的同时,还能边学边玩,然后再约上三两好友一起看看源码和实现,快乐就是这么简单

mgba
C++ 项目
Star 2.4wFork 5.5kWatch 998

用 C++ 编写的高性能键值存储引擎。该项目是由 Fackbook 数据库团队基于 levelDB 开发,键值均支持二进制流,能够充分利用多核 CPU 获得高性能,并兼容 levelDB 的 API 可谓是青出于蓝而胜于蓝。RocksDB 当下十分流行,一些开源数据库底层存储用的就是它

Go 项目
Star 2.4kFork 405Watch 29

用 Go 语言写的 Redis 服务器。它实现了 Redis 通信协议并兼容 redis-cli 客户端,包含 5 种常用的数据结构和命令比如:TTL、发布订阅、地理位置以及 AOF 持久化等,Go 的初学者可以通过该项目能够学习到关于 TCP、通信协议实现、常用的数据结构等知识,Web 开发学烦了?换一个口味,写个 Redis 作为实战项目吧

4.fzf
Star 4.8wFork 2.1kWatch 382

能够搜“一切”的模糊搜索命令行工具。它能够搜文件、历史命令、进程、git 提交记录等信息,支持预览内容、整合到 Vim/Neovim 编辑器,而且搜索速度极快

fzf
Star 2.1kFork 176Watch 23

用 Go 写的 GitLab 命令行工具。通过它除了能够在命令行管理项目、issues、合并提交之外,还能够查看 CI 的运行状态

api: Make authenticated REST/GRAPHQL auth: Manage glab's authentication state issue: Work with GitLab issues label: Manage labels on remote mr: Create, view and manage merge requests ci: Work with GitLab CI pipelines and jobs release: Manage GitLab releases repo: Work with GitLab repositories and projects
glab
Star 3.4kFork 279Watch 73

可设置固定数量协程的 goroutine pool 库。通过这个项目可实现 goroutine 重复使用,从而避免过度创建 goroutine 而造成的内存占用过多等问题

package main import ( "io/ioutil" "net/http" "runtime" "github.com/Jeffail/tunny" ) func main() { numCPUs := runtime.NumCPU() pool := tunny.NewFunc(numCPUs, func(payload interface{}) interface{} { var result []byte // TODO: Something CPU heavy with payload return result }) defer pool.Close() http.HandleFunc("/work", func(w http.ResponseWriter, r *http.Request) { input, err := ioutil.ReadAll(r.Body) if err != nil { http.Error(w, "Internal error", http.StatusInternalServerError) } defer r.Body.Close() // Funnel this work into our pool. This call is synchronous and will // block until the job is completed. result := pool.Process(input) w.Write(result.([]byte)) }) http.ListenAndServe(":8080", nil) }
Star 1.6wFork 2.2kWatch 317

适合新手学习 Go 语法的开源项目。学习一门编程语言最好的方法就是动手写,该仓库拥有 1000 多个 Go 语法的问题,让你可以跟着练并附有答案

Java 项目
Star 1.8kFork 175Watch 24

拥有漂亮仪表盘的服务器监控工具

Ward
Star 8.8kFork 2.1kWatch 159

一个开源的 EL(T) 平台。能简单快速地把用户提供的应用、数据库等地方的数据聚合到平台,从而可以在一个平台查询、展示、更新、管理这些数据

airbyte
Star 3.8kFork 2.2kWatch 305

GPS 追踪平台。此项目支持 170 多种 GPS 协议,1500 多种型号的 GPS 设备,功能包含:实时 GPS 追踪、数据统计报告、报警和通知等等

Star 2wFork 5.8kWatch 856

谷歌官方开源的 Android 媒体播放器。易于定制和扩展,支持丰富的数据格式比如:FMP4、FLV、SmoothStreaming、MP3 等

ExoPlayer
JavaScript 项目
Star 1.3wFork 1kWatch 312

一个专为手机端设计的前端页面调试工具。类似手机端迷你版开发者模式,可用于在手机端调试页面。主要功能包括:显示 console 日志、检查元素状态、捕获 XHR 请求、显示本地存储和 Cookie 等信息

eruda
Star 2.1kFork 139Watch 14

这是一个界面清爽、注重隐私的轻量级博客评论系统。可以很方便地与 React、Vue 或其他博客系统结合,并且还提供了一个后台来管理所有的评论。除此之外,还支持一键从 Disqus 导入、邮件通知等强大的功能

cusdis
Star 1.9wFork 870Watch 235

支持浏览器和 Electron 的轻量级 JSON 文件数据库。如果是创建没有后端的小型前端项目,但还有存储和管理数据的需求,那就快试试 lowdb 吧

import { join } from 'path' import { Low, JSONFile } from 'lowdb' // 新建 JSON 文件用于存储数据 const file = join(__dirname, 'db.json') const adapter = new JSONFile(file) const db = new Low(adapter) // 把内容更新到 db.data 并写入 JSON 文件 db.data.posts.push({ id: 1, title: 'lowdb is awesome' }).write() db.get('posts') .filter({title: 'lowdb is awesome'}) .sortBy('id') .take(5) .value()
Star 3.2wFork 2kWatch 433

能够把 Web 页面变成本地应用的命令行工具。通过 Electron+Chromium 把网站包装成本地 .app、.exe 等可执行文件,支持运行在 Windows、macOS 和 Linux 操作系统上

nativefier
Star 1.6kFork 131Watch 26

专注于电影的 HTML5 播放器。容易上手和使用,支持倍速播放、快捷键操作、字幕偏移即时调整等功能

moovie.js
Kotlin 项目
Star 1.1wFork 2.4kWatch 129

由 Kotlin 语言编写的 QQ 机器人框架。该项目提供了 Android QQ 协议的 API,通过这些 API 可以实现自动化操作,比如:群管理等功能,注意!该项目不支持一切商业使用。最后项目的 Kotlin 代码写的很好,感兴趣的同学可以去看下源码

Python 项目
Star 1.2kFork 140Watch 6

能够把多个平台上的数据,生成类似 GitHub 绿墙图像的工具。比如能够把发推的频率、扇贝单词打卡等情况生成类似 GitHub 绿墙图像,使用简单感兴趣的同学可以把玩一下

GitHubPoster
Star 1.9kFork 91Watch 33

用于制作简单 GUI 程序的 Python 库。换一种简单的方式写 GUI(图形用户界面)程序

from guietta import _, Gui, Quit gui = Gui( [ "Enter numbers:", "__a__", "+", "__b__", ["Calculate"] ], [ "Result: -->", "result", _, _, _ ], [ _, _, _, _, Quit ] ) with gui.Calculate: gui.result = float(gui.a) + float(gui.b) gui.run()
guietta
Star 5.5kFork 2.4kWatch 161

用来开发游戏的 Python 库。Pygame 已经持续更新多年,网上的教程和资料十分充足,虽然在游戏开发领域 Python 只是个弟弟,但如果只是用这个库开发个 2D 小游戏还是很顺手的。推荐给想用 Python 写个小游戏的朋友

pygame
Ruby 项目
Star 2wFork 3.6kWatch 357

用来构建社区的 Ruby 开源项目。一款开源、现成的论坛项目,能够让你快速搭建起来一个社区平台。国外知名的程序员社区 dev 用的就是它

forem
Rust 项目
Star 3.4wFork 3kWatch 322

免费开源的远程桌面软件。开箱即用无需任何配置,支持 Linux/Mac/Win/Android 等平台。还能够自行搭建服务器,由用户自己掌控数据,不必担心隐私数据泄露的问题。在当下越来越多的远程桌面软件都收费的情况下的另一个选择

rustdesk
Star 3.2kFork 190Watch 14

样式丰富的 Rust 终端进度条库

use indicatif::ProgressBar; let bar = ProgressBar::new(1000); for _ in 0..1000 { bar.inc(1); // ... } bar.finish();
indicatif
24.azul
Star 5.4kFork 207Watch 110

一个跨平台的 Rust 和 C/C++ 的 GUI 框架。使用 WebRender 渲染引擎和 CSS/HTML-like DOM 构建,可用于开发漂亮的原生桌面应用程序

#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] use azul::prelude::*; use azul_widgets::table_view::*; struct TableDemo { // cells: BTreeMap<TableCell, String>, } extern "C" fn layout(data: &mut RefAny, _: LayoutCallbackInfo) -> StyledDom { let mut table_view_state = TableViewState::default(); table_view_state.set_cell_content(TableCellIndex { row: 2, column: 2 }, "Hello World"); table_view_state.set_selection(Some(TableCellSelection::from(3, 4).to(3, 4))); TableView::new(table_view_state).dom().style(Css::empty()) } fn main() { let app = App::new(RefAny::new(TableDemo { }), AppConfig::new(LayoutSolver::Default)); app.run(WindowCreateOptions::new(layout)); }
azul
Swift 项目
25.Grid
Star 1.2kFork 59Watch 25

受 CSS Grid 启发,用 SwiftUI 编写关于视图(view)布局的开源项目

Grid
Star 2.2wFork 3.4kWatch 631

一个 Swift JSON 三方库,用更简单的方式处理 JSON

let json = JSON(data: dataFromNetworking) if let userName = json[0]["user"]["name"].string { //Now you got your value }
其它
Star 1.2kFork 76Watch 12

以看板的方式管理邮件的客户端应用。适用于 Mac/Windows 操作系统,支持 Gmail、Outlook 等邮箱

Kanmail
Star 8.9kFork 1.7kWatch 129

汇集了 800 多种编程语言 Hello World 的项目

Star 1.2wFork 1.7kWatch 202

腾讯开源的代码安全指南。该项目包含:C/C++、Python、JavaScript、Java、Go 等语言的安全编码指南,内容简单易懂能够帮助开发者,在代码源头规避安全风险减少漏洞

secguide
Star 2.5kFork 149Watch 66

开源的安卓客户端应用集合

Star 7.9kFork 480Watch 126

一款 JetBrains IDE 的 Material 风格主题

material-theme-jetbrains
Star 2.5kFork 455Watch 91

一款开源的中文输入法。市面上的输入法有很多,但你找到让自己称心如意的那款了吗?或许通过今天的开源项目你就能找到它。RIME 这款开源的输入法,它不追踪输入的内容源码完全开放,可自由切换繁/简中文,选择/设计输入方案和主题,对繁体字输入尤为优秀。作为输入法给予用户无限的自由和个性化,作为输入法框架让开发者有更多的发挥空间。比如支持不同操作系统的版本:Linux(中州韵)、Windows(小狼毫)、macOS(鼠须管)、Android(同文)由于自由度较高上手需要一些时间,这大概就是获得自由的代价吧

librime
33.aind
Star 1.5kFork 92Watch 23

实现在 Docker 中启动安卓应用的项目

docker run -td --name aind --privileged -p 5900:5900 -v /lib/modules:/lib/modules:ro ghcr.io/aind-containers/aind docker exec aind cat /home/user/.vnc/passwdfile
aind
开源书籍
Star 6.8kFork 810Watch 109

讲述“如何构建大型且可靠的分布式系统”的开源书籍。推荐给想成为架构师的你,在线阅读

Star 1.1kFork 154Watch 22

Google SRE 相关的书籍。Google SRE 是谷歌的专业运维团队的工程师,他们有一个共同的名字:Site Reliability Engineer,而这本书由 Google SRE 们撰写,分享了谷歌运维相关的一些技术和知识

google-sre-ebook
机器学习
Star 3.8wFork 6.9kWatch 856

克隆某个人说话声音的 AI 项目。仅需几秒音频,就能模仿出原音频的人声

Real-Time-Voice-Cloning
Star 4.6kFork 264Watch 61

Facebook 开源的一个数据增强 Python 库。该库目前支持音频、图像、文本和视频四种模式,一方面可以用现实数据对数据进行增强,另一方面还可以检测出相似内容,消除重复数据带来的干扰

AugLy
目录
  • C 项目
  • C++ 项目
  • Go 项目
  • Java 项目
  • JavaScript 项目
  • Kotlin 项目
  • Python 项目
  • Ruby 项目
  • Rust 项目
  • Swift 项目
  • 其它
  • 开源书籍
  • 机器学习