《HelloGitHub》第 79 期

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

be97bbe67bad5174be9f97779fb27ecf.png

简介

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

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

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


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

C 项目

1、masscan:超快的 IP 端口扫描工具。异步的 TCP 端口扫描器,特点就是快。最快能在 5 分钟内扫描完整个互联网,但要小心别把本机打挂了。

# 扫描指定 IP 的全部端口
masscan -p 0-65535 IP --rate=1000

地址:https://github.com/robertdavidgraham/masscan

2、sysbench:基于 LuaJIT 的可编写脚本的多线程基准测试工具。多用于数据库基准测试的命令行工具,经常出现在各种知名数据库的性能对比报告中。支持丰富的测试选项,比如表数量、数据条数、生成只读 SQL 等。

地址:https://github.com/akopytov/sysbench

C# 项目

3、imewlconverter:一款开源免费的输入法词库转换程序。输入法会根据用户的输入和选词频率,形成一套符合用户输入习惯的词库,但这个词库无法直接转换到其它输入法,如果你换了输入法就需要重新习惯、养成新的词库。该项目支持 20 多种输入法的用户词库相互导入、导出以及合并词库,能够将你的输入习惯带到全新的输入法。

ff59ada3a22435b7649133d850777ec4.png

地址:https://github.com/studyzy/imewlconverter

4、jellyfin:优秀的本地媒体库管理工具。这是一个完全免费、支持中文、安装简单、跨平台、功能强大的媒体库管理系统。它能把原本躺在文件夹里的视频文件,变成包含封面、描述、评分、演员表等信息的“影碟”,让视频整整齐齐、赏心悦目,还支持视频续播、订阅更新、多端可看,让你可以远离广告优雅地追剧。

8b2e8b2516cc7751caa04a6f1f0728ad.png

地址:https://github.com/jellyfin/jellyfin

5、PRemoteM:爽快利落的 Windows 平台远程桌面管理软件。该项目致力于提供优秀的远程桌面管理体验,通过启动器可以快速地连接到远程服务器,目前已支持 RDP、SSH、SFTP、FTP 等多种远程连接方式。

4afce50f766eb31df73c59280dca2738.gif

地址:https://github.com/1Remote/PRemoteM

C++ 项目

6、30dayMakeCppServer:从零编写一个 C++ 服务器的教程。该项目包含图文教程和源码,讲解了 socket、epoll、线程池、CMake 等知识点,适合有一定 C/C++ 基础的小伙伴学习。

地址:https://github.com/yuesong-feng/30dayMakeCppServer

7、ImHex:保护视力的十六进制编辑器。面向逆向工程师和程序员的编辑器,可用来查看、解码、分析和编辑二进制数据。它功能丰富、界面炫酷、多彩高亮,而且项目更新积极,比如最初不支持中文路径的问题,现已解决可正常使用。

99a79817afa119e367c943e275734a2a.png

地址:https://github.com/WerWolv/ImHex

8、NotepadNext:Notepad++  的开源替代品。采用 C++ 重写的跨平台文本编辑器,拥有和 Notepad++ 相似的界面和功能。

8baea51fa0002867ef043e9b8abb0bf9.png

地址:https://github.com/dail8859/NotepadNext

9、srs:一款简单、高效的实时视频服务器。高性能的流媒体服务器,支持 RTMP、WebRTC、HLS 和 HTTP-FLV 等协议,常用来构建直播和视频会议的后端服务。

3998b41f7ea68ce9e3ace241655cd301.png

地址:https://github.com/ossrs/srs

Go 项目

10、env:用于解析环境变量的 Go 语言库。一般情况下项目启动时需要的配置参数,都是通过环境变量传递的。该项目就是 Go 语言用来解析环境变量的库,它简单、体积小、零依赖。

package main

import (
 "fmt"
 "time"

 "github.com/caarlos0/env/v6"
)

type config struct {
 Home         string        `env:"HOME"`
 Port         int           `env:"PORT" envDefault:"3000"`
 Password     string        `env:"PASSWORD,unset"`
 IsProduction bool          `env:"PRODUCTION"`
 Hosts        []string      `env:"HOSTS" envSeparator:":"`
 Duration     time.Duration `env:"DURATION"`
 TempFolder   string        `env:"TEMP_FOLDER" envDefault:"${HOME}/tmp" envExpand:"true"`
}

func main() {
 cfg := config{}
 if err := env.Parse(&cfg); err != nil {
  fmt.Printf("%+v\n", err)
 }

 fmt.Printf("%+v\n", cfg)
}

地址:https://github.com/caarlos0/env

11、k8s-tutorials:免费的 Kubernetes 教程。K8s 作为云原生时代的必备技能之一,多少得会一些。该教程侧重于实战引导,用 Go 写的项目作为演示对象,从最基础的容器定义开始,逐一讲述 pod、deployment、service、ingress 等资源,直到用 helm 打包部署一套完整服务。

7b48702d79764b2a59b7ea0af6e56bac.png

地址:https://github.com/guangzhengli/k8s-tutorials

12、mizu:强大的 Kubernetes API 流量查看工具。如果把 k8s 比作操作系统,那它就是 k8s 上的 tcpdump,使用起来就像 Chrome 开发者工具一样简单直接,能够让 k8s 上微服务之间的网络通信一览无遗。

38f61ed9951a17a9efbc77ad061b8763.png

地址:https://github.com/up9inc/mizu

13、rod:Go 语言的网页自动化和爬虫库。该项目是 Go 语言封装的 DevTools 协议库,实现用 Go 语言操作浏览器,自动化之前需要手动完成的操作,比如:爬取客户端渲染的页面、端到端测试、自动填写表单、模拟点击等操作。项目包含丰富的示例代码,改改就能上手使用。

package main

import (
    "github.com/go-rod/rod"
)

func main() {
    page := rod.New().MustConnect().MustPage("https://hellogithub.com")
    page.MustWaitLoad().MustScreenshot("a.png")
}

地址:https://github.com/go-rod/rod

14、trivy:一款全面的容器安全扫描工具。目前最流行的开源容器镜像漏洞扫描工具,拥有速度快、精准度高、依赖检测、机密检查、对 CI 友好等特点。它不仅安装简单而且容易上手,仅需一条命令,即可发现镜像存在的安全漏洞。

# 安装
docker pull aquasec/trivy:0.33.0
# 运行
trivy image [YOUR_IMAGE_NAME]
afa40febe46a3bc3d82d9fba43622af4.png

地址:https://github.com/aquasecurity/trivy

Java 项目

15、GoodWeather:从零开发 Android 天气 APP。该项目介绍了如何开发一款支持天气预报、城市搜索、空气质量、自动更新等功能的 Android 应用,内含源码和配套讲解博文。

f35429d554c3e2b44597f95e40c0313c.png

地址:https://github.com/lilongweidev/GoodWeather

16、jvm-sandbox:一种 JVM 的非侵入式运行期 AOP 解决方案。简单点说就是如果线上 Java 服务出现故障,需要加一条日志定位问题,通过该项目可以在不重新部署服务的情况下,完成增加日志的操作。它还支持线上故障模拟、请求录制和结果回放等功能。

f58168caeb5a627cccd1b5b8215fbc5b.png

地址:https://github.com/alibaba/jvm-sandbox

17、spring-cloud-tencent:腾讯开源的一站式微服务解决方案。基于 Spring Cloud 的服务治理框架,提供了微服务领域常见的服务注册与发现、配置中心、服务路由、限流熔断以及元数据链路透传等能力。

16f47b6373e734929b86376a29470c2c.png

地址:https://github.com/Tencent/spring-cloud-tencent

JavaScript 项目

18、ava:可以并发执行 JavaScript 测试的工具。这是一款 Node.js 的测试运行工具,拥有简洁的 API、详细的错误输出、较高的执行效率等特点。

ace7d9da3de46562a429bd7bb311c8aa.png

地址:https://github.com/avajs/ava

19、kbar:为你的站点提供命令面板界面的组件。这是一个即插即用的 React 组件,可以快速地为站点增加命令面板功能。让用户可以通过快捷键,灵活、交互式地访问网站。

be3c35d304c66eff00de933efc77ddb4.png

地址:https://github.com/timc1/kbar

20、LogicFlow:滴滴开源的流程图编辑框架。该项目提供了一系列流程图交互和编辑的功能,支持实现脑图、ER 图、UML、工作流等各种场景。

117971febee8cb113d1d2a55f5339aa2.gif

地址:https://github.com/didi/LogicFlow

21、min:一款最小化的浏览器。它是仅包含搜索、书签、密码管理、广告屏蔽器等最基础功能的极简浏览器,适用于 Windows、Linux、macOS 操作系统。

5910707de1e270707bdb14d25356406d.png

地址:https://github.com/minbrowser/min

22、PPTist:在线编辑和演示 PPT 的应用。该项目采用 Vue3+TypeScript 构建,还原了大部分 Office PowerPoint 常用功能,支持在线编辑、演示和导出 PPT 文件。

46b9dfb6d4d9f37fcdbaa7dee1a77b13.png

地址:https://github.com/pipipi-pikachu/PPTist

Kotlin 项目

23、uhabits:一款帮助建立和维持好习惯的应用。该软件完全免费、支持中文、无广告和内购,在 Google 应用商店上有 500 万的下载量。首先用户需要在 APP 上新建一个习惯,可以设置频率、量化任务、提醒时间等,每当完成一次习惯就在应用上做一个标记,后面会有详细的图表展示习惯养成情况。

84189b94845205e48413d6f653e951d0.png

地址:https://github.com/iSoron/uhabits

Python 项目

24、latexify_py:用于生成 LaTeX 数学公式的 Python 库。LaTeX 是一种基于 ΤΕΧ 的排版系统,对于展示复杂的数学公式表现极为出色。该项目可以用 Python 函数,轻松生成复杂的 LaTeX 数学公式描述。

import math
import latexify

@latexify.with_latex
def solve(a, b, c):
    return (-b + math.sqrt(b**2 - 4*a*c)) / (2*a)

print(solve(1, 4, 3))
print(solve)
# 输出如下
# -1.0
# \mathrm{solve}(a, b, c)\triangleq \frac{-b + \sqrt{b^{2} - 4ac}}{2a}
e0e5d0f86fe8c511efbe977389678ca1.png

地址:https://github.com/google/latexify_py

25、matrix-webcam:在“矩阵”中进行视频会议。可以让你在视频会议时,实现类似《黑客帝国》数字雨的效果,支持 Teams/Zoom/Skype 视频软件,适用于 Windows、macOS、Linux 操作系统。

e9f23c0a9f1a5f588c6a87fd467d73d8.gif

地址:https://github.com/joschuck/matrix-webcam

26、pdf2docx:可将 PDF 转换成 docx 文件的 Python 库。该项目通过 PyMuPDF 库提取 PDF 文件中的数据,然后采用 python-docx 库解析内容的布局、段落、图片、表格等,最后自动生成 docx 文件。

from pdf2docx import parse

pdf_file = '/path/to/sample.pdf'
docx_file = 'path/to/sample.docx'

# convert pdf to docx
parse(pdf_file, docx_file)
b8e948da2baae6aaced97f58e6def766.png

地址:https://github.com/dothinking/pdf2docx

27、schedule:简单友好的 Python 任务调度库。该项目人性化的 API 设计,让开发者仅用几行代码就能轻松实现定时任务。它不依赖任何第三方库,全部代码也就一个文件 800 多行,拥有丰富的注释和单元测试,源码阅读起来十分轻松。

import schedule
import time

def job():
    print("I'm working...")

schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
schedule.every().minute.at(":17").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

地址:https://github.com/dbader/schedule

28、Umi-OCR:基于 PaddleOCR 的 OCR 图片转文字识别软件。完全免费、可离线使用的开源软件,支持截屏识别文字、批量导入图片、横/竖排文字,还可以自动忽略水印区域,适用于 Win10 操作系统。

6e6c5bad147a325179388c98e130db4c.png

地址:https://github.com/hiroi-sora/Umi-OCR

Ruby 项目

29、linguist:GitHub 官方开源的识别项目编程语言的库。该项目是 GitHub.com 网站上,用于检测开源项目编程语言占比的库。

# 安装
gem install github-linguist
# 在项目根目录下执行命令
github-linguist
# 结果
66.84%  264519     Ruby
24.68%  97685      C
6.57%   25999      Go
1.29%   5098       Lex
0.32%   1257       Shell
0.31%   1212       Dockerfile
8948e3e90bdda8349fff9684c0552c9f.png

地址:https://github.com/github/linguist

Rust 项目

30、atuin:神奇的 shell 历史记录工具。该项目通过 SQLite 数据库存储 shell 历史,能够显示更多的 shell 历史、命令运行时间、执行时间等信息,还支持选择、过滤、统计、同步/备份等操作。

# 搜索昨天下午3点之后记录的所有成功的 `make` 命令
atuin search --exit 0 --after "yesterday 3pm" make
e4939972f4c67be1f31ddda74bfff921.gif

地址:https://github.com/ellie/atuin

31、this-week-in-rust:Rust 语言社区的每周摘要。该项目是由 Rust 社区发起,每周发布一期 Rust 相关动态,包括 Rust 语言的文章、视频、音频、开源项目分享,以及本周的更新(PR)、RFC(征求意见)和开发进度。

地址:https://github.com/rust-lang/this-week-in-rust

Swift 项目

32、isowords:3D 魔方单词消消乐游戏。这是一款用 Swift 编写的 iOS 游戏,玩家可以选择 3D 立方体上的字母组成英文单词,如果一个字母被使用 3 次,该字母立方体就会消失,显示下面更多的字母。支持限时、无限、多人三种游戏模式,以及每日挑战和全球排行榜。

8dd127c65d5346389e13998f18bbb527.jpeg

地址:https://github.com/pointfreeco/isowords

33、swift-benchmark:用于对 Swift 代码片段进行基准测试的库。该项目是谷歌开源的用来测试 Swift 代码片段性能的库。

import Benchmark

benchmark("add string reserved capacity") {
    var x: String = ""
    x.reserveCapacity(2000)
    for _ in 1...1000 {
        x += "hi"
    }
}

Benchmark.main()
08f7c8978cb52715e6c3a2b09bf39321.png

地址:https://github.com/google/swift-benchmark

其它

34、code2flow:为动态语言生成调用图的工具。可根据源码文件生成漂亮的调用图的命令行工具,支持 Python、JavaScript、Ruby 等动态语言。

# 安装
pip3 install code2flow
# 使用
code2flow 文件
b94c8f46634cc6a7e860874f076da94f.png

地址:https://github.com/scottrogowski/code2flow

35、Codex-CLI:让终端理解自然语言命令的工具。该项目使用 GPT-3 Codex 可将自然语言命令,转换为 PowerShell、Zsh 和 Bash 中的命令,比如输入 what‘s my IP?就能得到本机 IP。

cebfc87e3cb8f2018653c57ef8380aba.gif

地址:https://github.com/microsoft/Codex-CLI

36、collisions:讲解和演示哈希冲突的项目。包含了攻击介绍、演示文件和示例代码,快速理解 MD5 消息摘要算法的弱点,比如两个不同内容的文件生成相同 MD5 值。

6ea964fe8243741e5ab87b890a6628d0.png

地址:https://github.com/corkami/collisions

37、rally:ES 官方开源的压力测试工具。基于 Python3 的 ES 压力测试命令行工具,功能丰富支持自动创建、运行、销毁 ES 集群,以及不同数据集的测试结果比较。

安装:
    pip3 install esrally

运行:
    esrally

命令:
    race                Run a benchmark
    list                List configuration options
    info                Show info about a track
    create-track        Create a Rally track from existing data
    generate            Generate artifacts
    compare             Compare two races
    download            Downloads an artifact
    install             Installs an Elasticsearch node locally
    start               Starts an Elasticsearch node locally
    stop                Stops an Elasticsearch node locally
7ca643f94663f04fec508d8cef616f33.png

地址:https://github.com/elastic/rally

38、testssl.sh:测试 TLS/SSL 加密的工具。它可以用来检查 Web 服务是否支持 TLS/SSL 加密和协议,以及存在的缺陷。

7f2e2f65548609f7cf76802811527424.png

地址:https://github.com/drwetter/testssl.sh

开源书籍

39、craftinginterpreters:《Crafting Interpreters》手撸解释器。该书作者在 Google 从事 Dart 语言的相关工作,书中内容是从一门小型自创编程语言 Lox 开始,详细介绍了如何为该语言制作解释器和虚拟机,推荐给想要学习编译原理或自创编程语言的同学。

9fe8865fe4b03d3dd8475d2dfe58cdf4.png

地址:https://github.com/munificent/craftinginterpreters

40、ThinkDSP:《Think DSP》Python 数字信号处理。本书内容是将 Python 代码和数字信号处理结合,相较于干巴巴的文字,通过代码示例更容易理解相关概念,该书作者还著有《Think Python》等图书。

9792721b0f552f36797c5242e7f7fe2d.png

地址:https://github.com/AllenDowney/ThinkDSP

机器学习

41、motion-diffusion-model:根据文本生成 3D 人体运动的模型。论文《Human Motion Diffusion Model》第一作者开源的 PyTorch 实现。

1f4589ef3edbe59a921d61135520ddd3.gif

地址:https://github.com/GuyTevet/motion-diffusion-model

42、whisper:OpenAI 开源的多语言识别系统。该项目是强大的自动语音识别系统,支持包括中文在内的多种语言识别。尤其是在快语速、口音、背景噪音等场景,依旧表现出色,能够达到极高的准确率。

import whisper

model = whisper.load_model("base")
result = model.transcribe("audio.mp3")
print(result["text"])

# 命令行使用
# $ whisper --language Chinese --model large audio.wav
# [00:00.000 --> 00:08.000] 如果他们使用航空的方式运输货物在某些航线上可能要花几天的时间才能卸货和通关
c5248e10dd6381efa11a94cfd1d6870a.png

地址:https://github.com/openai/whisper

最后

以上就是本期的所有内容,还没看过瘾?点击阅读往期内容。

如果安装或运行开源项目遇到问题,就看这篇文章吧!

如果您觉得本期内容还不错的话 求赞、求分享,有了您的支持 HelloGitHub 一定会变得更好!❤️

- END -

👆 关注「HelloGitHub」收到第一时间的更新👆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值