分享 GitHub 上有趣的项目月刊《HelloGitHub》第 63 期 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xueweihan
V2EX    分享发现

分享 GitHub 上有趣的项目月刊《HelloGitHub》第 63 期

  •  
  •   xueweihan 2021-06-28 08:54:24 +08:00 3205 次点击
    这是一个创建于 1571 天前的主题,其中的信息可能已经有所发展或是发生改变。

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣!

    内容

    以下为本期内容|每个月 28 号更新

    C 项目

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

    返回目录


    C++ 项目

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

    返回目录


    Go 项目

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

    4 、tunny:可设置固定数量协程的 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:用 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 

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

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

    返回目录


    Java 项目

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

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

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

    11 、Ward:拥有漂亮仪表盘的服务器监控工具

    返回目录


    Javascript 项目

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

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

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

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

    返回目录


    Kotlin 目

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

    返回目录


    Python 项目

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

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

    20 、guietta:用于制作简单 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() 

    返回目录


    Ruby 项目

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

    返回目录


    Rust 项目

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

    23 、indicatif:样式丰富的 Rust 终端进度条库

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

    24 、azul:一个跨平台的 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)); } 

    返回目录


    Swift 项目

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

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

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

    返回目录


    其它

    27 、aind:实现在 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 

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

    29 、android-foss:开源的安卓客户端应用集合

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

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

    32 、hello-world:汇集了 800 多种编程语言 Hello World 的项目

    33 、material-theme-jetbrains:一款 JetBrains IDE 的 Material 风格主题

    返回目录


    开源书籍

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

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

    返回目录


    机器学习

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

    37 、Real-Time-Voice-Cloning:克隆某个人说话声音的 AI 项目。仅需几秒音频,就能模仿出原音频的人声

    返回目录


    『上一期』 | 反馈和建议 | 『下一期』


    如果文中的图刷不出来,可以点击 这里 获取更好的阅读体验。

    声明

    知识共享许可协议
    本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。

    3 条回复    2021-06-28 12:15:29 +08:00
    tousfun
        1
    tousfun  
       2021-06-28 10:01:46 +08:00 via iPhone
    有 telgram 频道吗
    BenX
        2
    BenX  
       2021-06-28 11:09:13 +08:00 via Android
    有订阅 RSS 站点吗?
    stille
        3
    stille  
       2021-06-28 12:15:29 +08:00 via iPhone
    记得有官网,以前订阅过 rss

    https://hellogithub.com/
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3987 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 05:21 PVG 13:21 LAX 22:21 JFK 01:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86