扫一扫
关注 HG 公众号
发现更多开源乐趣

第 63 期

兴趣是最好的老师,HelloGitHub 就是帮你找到编程的兴趣。

C 项目

1. mgba

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

C++ 项目

2. rocksdb

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

Go 项目

3. learngo

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

4. tunny

Star 2.5k Watch 74 Fork 219
可设置固定数量协程的 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)
}

5. glab

Star 1.4k Watch 21 Fork 105
用 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

6. fzf

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

7. godis

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

Java 项目

8. ExoPlayer

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

9. traccar

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

10. airbyte

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

11. Ward

Star 1.3k Watch 19 Fork 85
拥有漂亮仪表盘的服务器监控工具
Ward

JavaScript 项目

12. moovie.js

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

13. nativefier

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

14. lowdb

Star 16.0k Watch 232 Fork 753
支持浏览器和 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()

15. eruda

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

16. cusdis

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

Kotlin 项目

17. mirai

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

Python 项目

18. pygame

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

19. GitHubPoster

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

20. guietta

Star 1.8k Watch 32 Fork 92
用于制作简单 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

Ruby 项目

21. forem

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

Rust 项目

22. rustdesk

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

23. indicatif

Star 2.0k Watch 13 Fork 126
样式丰富的 Rust 终端进度条库

use indicatif::ProgressBar;

let bar = ProgressBar::new(1000);
for _ in 0..1000 {
    bar.inc(1);
    // ...
}
bar.finish();

indicatif

24. azul

Star 4.7k Watch 117 Fork 188
一个跨平台的 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 874 Watch 26 Fork 31
受 CSS Grid 启发,用 SwiftUI 编写关于视图(view)布局的开源项目
Grid

26. SwiftyJSON

Star 20.7k Watch 643 Fork 3.2k
一个 Swift JSON 三方库,用更简单的方式处理 JSON

let json = JSON(data: dataFromNetworking)
if let userName = json[0]["user"]["name"].string {
  //Now you got your value
}

其它

27. aind

Star 1.4k Watch 24 Fork 76
实现在 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

28. librime

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

29. android-foss

Star 1.2k Watch 44 Fork 96
开源的安卓客户端应用集合

30. secguide

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

31. Kanmail

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

32. hello-world

Star 7.0k Watch 116 Fork 1.5k 中文
汇集了 800 多种编程语言 Hello World 的项目

33. material-theme-jetbrains

Star 7.9k Watch 132 Fork 482
一款 JetBrains IDE 的 Material 风格主题
material-theme-jetbrains

开源书籍

34. awesome-fenix

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

35. google-sre-ebook

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

机器学习

36. AugLy

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

37. Real-Time-Voice-Cloning

Star 28.4k Watch 784 Fork 5.2k
克隆某个人说话声音的 AI 项目。仅需几秒音频,就能模仿出原音频的人声
Real-Time-Voice-Cloning