程序员的开源月刊《HelloGitHub》第 68 期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员的开源月刊《HelloGitHub》第 68 期相关的知识,希望对你有一定的参考价值。

参考技术A

HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。

这里有实战项目、入门教程、黑 科技 、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、Java、Go、C/C++、Swift...让你在短时间内感受到开源的魅力,对编程产生兴趣!

1、 toybox :该项目将 200 多个常用的 Linux 命令行工具,做成一个可执行文件。从而可以让 android 这种原本不支持 Linux 命令的系统,也得以用上 ls、find、ps 等命令。还可以用于快速构建最小的 Linux 环境

2、 the_silver_searcher :比 ack 更快的命令行搜索工具。速度快、功能强大、使用简单,支持 Linux、Windows、macOS 操作系统,还能够整合进 Vim 和 Emacs 等编辑器

3、 WindTerm :支持 SSH/Telnet/Serial/Shell/Sftp 的终端工具。虽然该软件完全免费,但部分代码尚未完全开源,对安全敏感的同学可以再观望下

4、 wavefunctioncollapse :基于波函数坍缩 (WFC) 算法,实现的无限城市示例。城市里有房子、楼梯、树木、连接房屋的通道,你可以在城市中自由移动、跳跃、飞行,但不论你怎么移动都找不到尽头,因为这座城市会无限延伸

5、 NETworkManager :管理和解决网络问题的工具。它集成了 IP 和端口扫描、WiFi 分析器、跟踪路由、DNS 查询等工具

6、 ppsspp :能够运行在 Android 和 PC 上的开源 PSP 模拟器

7、 leocad :用来创建虚拟乐高模型的 CAD 工具。适用于 Windows、Linux 和 macOS 系统

8、 csshake :用 CSS 实现抖动效果

9、 MangoDB :真正开源的 MongoDB 替代品。它底层采用 PostgreSQL 作为存储引擎,用 Go 语言实现了 MongoDB 协议,所以几乎兼容所有的 MongoDB 库,迁移起来毫无负担。如果你用不到 MongoDB 的高级功能,还受限于它的开源协议,那么这个项目可作为 MongoDB 的开源替代方案。它才刚刚起步,建议观望一段时间或做足测试再用于生产环境

10、 caddy :用 Go 编写的轻量级 Web 服务器。它相较于 Apache、nginx 这些知名 Web 服务器,独特点在于提供了编译好的可执行文件,实现了真正的开箱即用。无需任何配置即可拥有免费的 HTTPS、自动把 Markdown 文件转化成 html 等人性化的功能。如果是搭建中小型的 Web 服务,它完全够用而且省时省心

11、 croc :可以让任意两台计算机,安全方便地传输文件和文件夹的工具。轻松实现端到端加密的跨平台文件传输,还支持多文件传输、传输中断和恢复等功能

12、 jnativehook :获取键盘和鼠标事件的 Java 库。轻松监听按键、鼠标移动、点击等事件

13、 spider-flow :用流程图的方式编写爬虫的平台。无需写代码就可以快速完成一个简单的爬虫

14、 greenDAO :高性能的 Android ORM 库。拥有体积小、易于使用、支持数据库加密等特点,通过它 Android 开发者可以采用面向对象的方式操作数据库,不需要再手写和拼接 SQL 啦

15、 vue-color-avatar :纯前端实现的矢量风格头像生成网站。可以通过搭配不同的素材,生成个性化头像。该项目使用 Vite + Vue3 开发,能够帮助前端初学者熟悉 Vue3 语法并掌握项目搭建的相关知识

16、 colorfu :自动生成由文字/颜色/图片/纹理元素组成的壁纸

17、 pm2 :Node.js 的进程管理工具。它容易上手操作简单,可以有效地提高 Node.js 程序运行的稳定性,支持自动重启、负载均衡、不停服务重启、性能监控等功能,多用于生产环境中管理、监控 Node.js 进程

18、 automa :通过图形化界面拖拽功能模块,实现浏览器自动操作的扩展工具。轻松实现自动填表、截图、定时执行等操作。让浏览器自动完成预设工作流的插件,从而减少重复性操作提高效率

19、 PyWebIO :快速构建 Web 应用的 Python 工具。通过该项目你可在不写 HTML、CSS、JS 代码的前提下,仅用 Python 快速完成一个包含数据展示、表单的小型 Web 应用页面

20、 pottery :以 Python 的方式操作 Redis 的库。忘记那些 Redis 命令吧,只要你知道如何使用 Python 字典,那么你就会用这个库操作 Redis

21、 zulip :完全开源的企业级即时通讯项目。后端采用 Python 语言实现性能足够强大,功能齐全相当于开源、免费的 Slack,拥有拖拽上传文件、代码高亮、Markdown 语法、应用整合、容易接入的 API 等功能,还支持 Web、PC、ios 和 Android 主流平台,众多知名企业都在用,能够有效地提高团队沟通和办公效率。同时该项目对新手用户友好,如果你想加入一个不错的 Python 开源项目,推荐你花时间研究下它一定会有所收获

22、 webssh :简单的 SSH 连接服务器的 Python Web 应用。该项目后端采用 Tornado Web 框架和 Python SSH 库 paramiko,前端是 TypeScript 写的命令行前端组件 Xterm.js 实现。整个项目简单还具有实用价值,可作为 Python Web 的实战项目学习

23、 django-debug-toolbar :Django 的调试工具栏。可显示当前请求和响应有关的各种调试信息,包括耗时、SQL、配置、性能等信息

24、 hyperfine :命令行基准测试工具。可用来查看和对比命令的耗时,支持多次运行的统计分析、结果导出等功能

25、 xcode-dev-cleaner :用于清理各种 Xcode 的缓存数据,释放存储空间。注意是清除 Xcode 缓存数据,不是卸载 Xcode 哈

26、 toml :更易读和易于维护的配置文件格式。如果你厌倦了 INI 的局限性、层层嵌套的 JSON 和 YAML 令人心惊胆战的缩进语法,不防给 TOML 一个机会,它支持多种数据类型、抛弃了缩进和嵌套,而且众多流行编程语言都有对应的库。TOML 已经足够成熟,绝对值得一试

27、 waka-readme-stats :自动在 GitHub 个人首页展示编程时长的工具。该项目通过 WakaTime 记录用户在 IDE 的使用时间,统计编程时长和数据,然后采用 GitHub Action 自动获取并动态更新到 GitHub 个人首页。轻而易举地展示自己的编程时长

28、 PathPlanning :常见的路径规划算法集合。项目包含了 Python 代码实现、运行过程动画以及相关论文

29、 howdy :为 Linux 系统提供人脸识别解锁电脑的工具。通过电脑内置的摄像头和红外设备,实现了类似 Windows Hello 风格的身份认证,可用于登陆、锁屏、sudo 等任何需要输入密码的地方

30、 The-Open-Book :开源的电子水墨屏阅读设备。动手能力强的同学可跟着这个项目,从焊电路板开始亲手制作出一个类 Kindle 的 4.2 英寸阅读设备

31、 fl_chart :Flutter 图表库。它支持折线图、条形图、饼图、散点图和雷达图

32、 ugo-compiler-book :《从头开发一个迷你 Go 语言》该书教你从头实现迷你 Go 语言,内容包含了词法解析、语法树构建、函数闭包、接口、CGO 的实现等内容

33、 archbase :教科书《计算机体系结构基础》第三版

34、 spring-in-action-v6-translate :《Spring 实战第 6 版》中文翻译

35、 best_AI_papers_2021 :2021 年必看的人工智能论文列表。该项目不是简单的罗列论文,它不仅包含相关论文的代码、效果展示,还有深入的文章和讲解视频。通过学习这些前沿的人工智能论文,提前了解 AI 在未来更多可能性

36、 AnimeGANv2 :可以将图片和视频转换成漫画风格的工具。采用的是神经风格迁移+生成对抗网络(GAN)的组合,转换速度快

感谢您的阅读,如果觉得内容还不错的话 求赞、求分享 ,您的每一次支持都将让 HelloGitHub 变得更好!

《HelloGitHub》第 69 期



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


《HelloGitHub》第

简介

HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。


​https://github.com/521xueweihan/HelloGitHub​


这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、Java、Go、C/C++、Swift...让你在短时间内感受到开源的魅力,对编程产生兴趣!



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


C 项目

1、​​quadsort​​:一种比快速排序快,稳定的归并排序算法。项目包含原理讲解、C 语言实现、性能对比和排序过程

《HelloGitHub》第

2、​​minilisp​​:用 1000 行 C 语言写的 Lisp 解释器。实现了整数、符号、局部变量、条件语句、宏和垃圾回收等功能,为了让读者更好地理解项目,代码中包含了丰富的注释

(println 3)  ; prints "3"
(+ 1 2 3) ; -> 6
(define a (+ 1 2))
(+ a a) ; -> 6

3、​​mpv​​:功能强大、免费开源、支持多平台的极简播放器。底层采用了 MPlayer、mplayer2 和 FFmpeg 等开源项目,支持多种音视频格式、高清视频、GPU 解码、自定义等功能,追求极简的命令行启动+快捷键操作方式,让它成为了技术爱好者的首选视频播放器

《HelloGitHub》第

C# 项目

4、​​jynew​​:采用 Unity 重制的《金庸群侠传》3D 版

《HelloGitHub》第

C++ 项目

5、​​cutter​​:一款免费开源的逆向工程平台。采用 Rizin 作为核心引擎并集成了 Ghidra 反编译器,它界面简洁功能强大,深受逆向工程师们的喜爱


  • 支持多种语言和主题
  • 二进制搜索
  • 十六进制编辑器
  • Python 脚本和插件
  • 支持 Linux、macOS、Windows

《HelloGitHub》第

6、​​bpftrace​​:Linux 高级追踪工具和语言。该工具基于 eBPF 和 BBC 实现了通过探针机制采集内核和程序运行的信息,然后用图表等方式将信息展示出来,帮助开发者找到隐藏较深的 Bug、安全问题和性能瓶颈

《HelloGitHub》第

7、​​Cataclysm-DDA​​​:《大灾变:黑暗之日》是一款以世界末日为背景的生存游戏。游戏中没有任何任务,唯一的目标就是活下去。玩家可以通过寻找食物、装备等资源建造避难所,还支持车辆改装、制作物品等特色机制,支持 Windows、Linux、macOS、Android 系统。​​下载地址

《HelloGitHub》第

CSS 项目

8、​​heti​​:专为中文内容展示设计的排版样式。它会让你的中文网站变得好看


  • 贴合网格的排版
  • 全标签样式美化
  • 预置多种排版样式
  • 简/繁体中文支持
  • 移动端支持

《HelloGitHub》第

Go 项目

9、​​k9s​​:监控和管理 K8s 集群的命令行工具。它安装简单功能齐全,命令行交互的操作方式可以轻松地解决日常问题

《HelloGitHub》第

10、​​kind​​:使用 Docker 容器作为节点,在本地快速运行起 Kubernetes 集群的工具。通过该工具可以快速创建媲美 k8s 原生的本地环境,而且占用资源相对较少启动速度快。多用于本地开发和测试 k8s 原生组件,不能用于线上环境

《HelloGitHub》第

11、​​air​​:有代码变动就会自动重启服务的 Go 工具。在开发 Go Web 项目时,每次修改后都需要手动编译、重启服务,这个工具会在文件和目录发生变动后,自动编译并重启服务,大大提高了开发效率

《HelloGitHub》第

12、​​juicefs​​:高性能 POSIX 共享文件系统。像使用本地存储一样高效使用海量云端存储,可同时被多台主机同时挂载读写

《HelloGitHub》第

13、​​sniffer​​:用于查看进程和连接的流量情况的命令行工具。界面简洁美观,支持进程、Socket 等不同视角查看流量数据

《HelloGitHub》第

Java 项目

14、​​AndResGuard​​:混淆压缩 APK 的工具。原理是采用资源混淆的方式,不涉及编译过程仅通过变短资源路径实现压缩和混淆,使用方法简单只需传入一个打包好的 APK 文件

15、​​datahub​​​:基于 Java 开发的元数据治理平台,可接入 Hive、Kafka、ES、MySQL 等数据源。随着公司业务的发展,数据的复杂度会呈指数倍增长,通过文档和口口相传的方式管理数据关系的方式终将被淘汰。如果你体验过到处问数据库的字段含义、没捋清某个字段导致线上事故、分析数据毫无头绪等情况。这个时候就需要元数据治理平台,它提供浏览、搜索和管理每个字段的含义、关系、来源等信息,通过元数据的方式更好的治理和挖掘数据的价值。​​在线体验​

《HelloGitHub》第

16、​​termux-app​​:运行在 Android 上的开源终端模拟器。提供了 Linux 环境和 Shell 通过自带的包管理器,能够在手机上安装和运行 ssh、Python、gcc、htop、git、vim 等工具

《HelloGitHub》第

17、​​questdb​​:高性能的开源时序数据库。该项目主要采用 Java 代码实现,它通过面向列的存储引擎、并行执行、SIMD 指令等技术实现了出色的写入和查询性能,多用于物联网、机器学习、金融等场景。还提供了 SQL 查询方式以及交互式的 Web 操作平台,一款值得期待的开源数据库

《HelloGitHub》第

18、​​addax​​:支持多种异构数据源离线同步工具。服务于大数据的 ETL 工具,可快速实现 MySQL、HDFS、Hive、HBase 等数据源之间的数据同步,主要用于离线采集各类数据到数据仓库或者大数据平台

《HelloGitHub》第

JavaScript 项目

19、​​arco-design​​:基于 ArcoDesign 的 React/Vue UI 组件库。包含 60 多个开箱即用的高质量组件,还提供了可视化的样式配置平台,可用于快速构建企业级管理后台

import React from react;
import ReactDOM from react-dom;
import Button from @arco-design/web-react;
import @arco-design/web-react/dist/css/arco.css;

function App()
return (
<Button type=secondary>
Hello World
</Button>
);


ReactDOM.render(<App ></App>, document.getElementById(app));

《HelloGitHub》第

20、​​context-note​​:带上下文的网页笔记浏览器插件。大多数时候我们使用书签来标记网站链接,但在一些特定的场景中比如阅读文章和浏览信息时,就需要对特定的句子及其上下文进行标记。这个项目提取了信息的内容和位置,有上下文容易回顾,一键跳方便溯源

《HelloGitHub》第

21、​​S2​​​:高性能多维交叉分析表格工具。提供 KPI 趋势表、占比表、对比表等多种表格样式,开箱即用上手简单拥有详细的文档。通过按需渲染和虚拟滚动等方式,实现在百万级数据量秒级渲染、滚动不卡顿。​​在线体验​

《HelloGitHub》第

22、​​prisma​​:适用于 Node.js 和 TypeScript 的 ORM。支持主流数据库可用于开发 REST API、GraphQL API、gRPC API 等任何需要连接数据库的程序,项目还包括了数据迁移工具和管理数据的 GUI 工具

import  PrismaClient  from @prisma/client

const prisma = new PrismaClient()

// A `main` function so that you can use async/await
async function main()
const allUsers = await prisma.user.findMany(
include: posts: true ,
)
// use `console.dir` to print nested objects
console.dir(allUsers, depth: null )


main()
.catch((e) =>
throw e
)
.finally(async () =>
await prisma.$disconnect()
)

《HelloGitHub》第

Objective-C 项目

23、​​vienna-rss​​:适用于 macOS 的免费 RSS 订阅工具

《HelloGitHub》第

PHP 项目

24、​​laravel-tips​​​:Laravel 编码技巧集合。​​中文​

25、​​PHPWord​​:提供了读/写多种文档文件格式的 PHP 库。支持 Microsoft Office、富文本(RTF)等文档格式

<?php
require_once bootstrap.php;

// 新建文档
$phpWord = new \\PhpOffice\\PhpWord\\PhpWord();

// Adding an empty Section to the document...
$section = $phpWord->addSection();
// Adding Text element to the Section having font styled by default...
$section->addText(
"Learn from yesterday, live for today, hope for tomorrow.
. The important thing is not to stop questioning."
. (Albert Einstein)
);

Python 项目

26、​​orjson​​:更快更强的 Python JSON 库。支持比如日期、numpy 数组等丰富的数据类型,而且速度更快

>>> import orjson, datetime, numpy
>>> data =
"type": "job",
"created_at": datetime.datetime(1970, 1, 1),
"status": "????",
"payload": numpy.array([[1, 2], [3, 4]]),

>>> orjson.dumps(data, option=orjson.OPT_NAIVE_UTC | orjson.OPT_SERIALIZE_NUMPY)
b"type":"job","created_at":"1970-01-01T00:00:00+00:00","status":"\\xf0\\x9f\\x86\\x97","payload":[[1,2],[3,4]]
>>> orjson.loads(_)
type: job, created_at: 1970-01-01T00:00:00+00:00, status: ????, payload: [[1, 2], [3, 4]]

27、​​tiler​​:将图片化成各种较小图块拼接成的图像工具。马赛克风格的图片转化工具,支持自定义拼接图案和符号。工具实用方便、代码简单易懂,适合对图像感兴趣的小伙伴学习和上手

《HelloGitHub》第

28、​​rumps​​:简单的 macOS 状态栏 Python 库

import rumps

class AwesomeStatusBarApp(rumps.App):
@rumps.clicked("Preferences")
def prefs(self, _):
rumps.alert("jk! no preferences available!")

@rumps.clicked("Silly button")
def onoff(self, sender):
sender.state = not sender.state

@rumps.clicked("Say hi")
def sayhi(self, _):
rumps.notification("Awesome title", "amazing subtitle", "hi!!1")

if __name__ == "__main__":
AwesomeStatusBarApp("Awesome App").run()

《HelloGitHub》第

其它

29、​​Simula​​:Linux 上的 VR 窗口管理工具。通过该工具+VR 设备可轻松实现“目光所及皆桌面”的效果,它基于 Godot 开发安装简单实用方便,支持 HTC Vive Pro、Valve Index 等 VR 设备

《HelloGitHub》第

30、​​penpot​​​:开源的设计和原型在线平台。它不仅完全免费还提供 Docker 自建和在线使用,而且支持中文和团队共享。缺点是平台提供的组件太少了,第一次上手需要自己从形状开始搞,不过可以自定义组件做到一劳永逸。如果你在寻找开源、免费的原型设计平台,不妨试试它。​​在线尝试​

《HelloGitHub》第

31、​​design-resources-for-developers​​:设计资源集合。项目包含了图片、网站模版、CSS 框架、UI 等资源

《HelloGitHub》第

32、​​koreader​​:电子墨水(E-Ink)设备的开源阅读软件。适用于 Kindle、Kobo、PocketBook、Android 和 Linux 等设备,拥有设置字体、行距、文本样式等功能,最厉害的是适应水墨屏设备的 PDF 文件排版优化功能,极大的提高了 PDF 文件在 Kindle 等设备的阅读体验

《HelloGitHub》第

33、​​tabby​​:高颜值的终端工具。功能强大高度可配置,适用于 Windows、macOS、Linux 操作系统


  • 支持自定义主题和配色
  • 可配置快捷键和组合键
  • 集成了 SSH、Telnet 等连接
  • 分割窗口
  • 等等

《HelloGitHub》第

34、​​doomcaptcha​​​:毁灭战士射击游戏形式的验证码。​​在线尝试​

《HelloGitHub》第

35、​​wsa_pacman​​:轻松地在 Windows11 安装 Android 应用的桌面工具。使用该工具可以实现双击安装 Android 应用,基于系统自带的 WSA 实现,不需要安装第三方模拟器

《HelloGitHub》第

36、​​appflowy​​:开源笔记工具。基于 Flutter 开发适用于各种操作系统,目标是成为 Notion 的代替品

《HelloGitHub》第

开源书籍

37、​​school-of-sre​​:领英开源的成为 SRE(网站可靠性工程师)的入门级教程。内容涵盖 Web、Linux、Git、计算机网络、数据库、安全等方面

《HelloGitHub》第

38、​​everything-curl​​​:《关于 curl 的所有东西》。由 curl 项目发起者撰写的书,内容包括 curl 入门、开源、源码、项目等方面。​​在线阅读​

《HelloGitHub》第

机器学习

39、​​ML-For-Beginners​​:微软开源的入门级机器学习教程

《HelloGitHub》第

40、​​spleeter​​:基于 Tensorflow 实现的音轨分离工具。可以用于提取音乐中的人声、鼓、钢琴等乐器

# 用 conda 安装依赖
conda install -c conda-forge ffmpeg libsndfile
# 用 pip 安装 spleeter
pip install spleeter
# 提取人声
spleeter separate -p spleeter:2stems -o output 音频.mp3






以上是关于程序员的开源月刊《HelloGitHub》第 68 期的主要内容,如果未能解决你的问题,请参考以下文章

《HelloGitHub》第 35 期

《HelloGitHub》第 68 期

《HelloGitHub》第 24 期(两周年)

开源项目资源 - 01

github过程中收集

GitHub