兴趣是最好的教师,HelloGitHub 让你对编程感兴趣!
简介
HelloGitHub 共享 GitHub 上风趣、入门级的开源项目。
github.com/521xueweiha…
这里有实战项目、入门教程、黑科技、开源书本、大厂开源项目等,包含多种编程言语 Python、Java、Go、C/C++、Swift…让你在短时刻内感受到开源的魅力,对编程发生兴趣!
以下为本期内容|每个月 28 号更新
C 项目
1、masscan:超快的 IP 端口扫描东西。异步的 TCP 端口扫描器,特色便是快。最快能在 5 分钟内扫描完整个互联网,但要当心别把本机打挂了。
# 扫描指定 IP 的悉数端口
masscan -p 0-65535 IP --rate=1000
2、sysbench:根据 LuaJIT 的可编写脚本的多线程基准测验东西。多用于数据库基准测验的指令行东西,常常呈现在各种闻名数据库的功用对比陈述中。支撑丰厚的测验选项,比方表数量、数据条数、生成只读 SQL 等。
C# 项目
3、imewlconverter:一款开源免费的输入法词库转换程序。输入法会根据用户的输入和选词频率,形成一套契合用户输入习气的词库,但这个词库无法直接转换到其它输入法,假如你换了输入法就需求从头习气、养成新的词库。该项目支撑 20 多种输入法的用户词库彼此导入、导出以及兼并词库,可以将你的输入习气带到全新的输入法。
4、jellyfin:优异的本地媒体库办理东西。这是一个完全免费、支撑中文、装置简略、跨渠道、功用强壮的媒体库办理体系。它能把本来躺在文件夹里的视频文件,变成包含封面、描述、评分、演员表等信息的“影碟”,让视频整整齐齐、赏心悦目,还支撑视频续播、订阅更新、多端可看,让你可以远离广告高雅地追剧。
5、PRemoteM:直爽利落的 Windows 渠道长途桌面办理软件。该项目致力于供给优异的长途桌面办理体会,经过启动器可以快速地连接到长途服务器,现在已支撑 RDP、SSH、SFTP、FTP 等多种长途连接方法。
C++ 项目
6、30dayMakeCppServer:从零编写一个 C++ 服务器的教程。该项目包含图文教程和源码,讲解了 socket、epoll、线程池、CMake 等知识点,合适有一定 C/C++ 根底的小伙伴学习。
7、ImHex:保护视力的十六进制修改器。面向逆向工程师和程序员的修改器,可用来查看、解码、分析和修改二进制数据。它功用丰厚、界面炫酷、多彩高亮,而且项目更新积极,比方最初不支撑中文路径的问题,现已处理可正常运用。
8、NotepadNext:Notepad++ 的开源替代品。选用 C++ 重写的跨渠道文本修改器,具有和 Notepad++ 相似的界面和功用。
9、srs:一款简略、高效的实时视频服务器。高功用的流媒体服务器,支撑 RTMP、WebRTC、HLS 和 HTTP-FLV 等协议,常用来构建直播和视频会议的后端服务。
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)
}
11、k8s-tutorials:免费的 Kubernetes 教程。K8s 作为云原生年代的必备技术之一,多少得会一些。该教程侧重于实战引导,用 Go 写的项目作为演示目标,从最根底的容器定义开端,逐个讲述 pod、deployment、service、ingress 等资源,直到用 helm 打包部署一套完整服务。
12、mizu:强壮的 Kubernetes API 流量查看东西。假如把 k8s 比作操作体系,那它便是 k8s 上的 tcpdump,运用起来就像 Chrome 开发者东西一样简略直接,可以让 k8s 上微服务之间的网络通信一览无遗。
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")
}
14、trivy:一款全面的容器安全扫描东西。现在最盛行的开源容器镜像漏洞扫描东西,具有速度快、精准度高、依靠检测、机密查看、对 CI 友好等特色。它不仅装置简略而且简单上手,仅需一条指令,即可发现镜像存在的安全漏洞。
# 装置
docker pull aquasec/trivy:0.33.0
# 运转
trivy image [YOUR_IMAGE_NAME]
Java 项目
15、GoodWeather:从零开发 Android 气候 APP。该项目介绍了如何开发一款支撑气候预报、城市查找、空气质量、自动更新等功用的 Android 运用,内含源码和配套讲解博文。
16、jvm-sandbox:一种 JVM 的非侵入式运转期 AOP 处理方案。简略点说便是假如线上 Java 服务呈现毛病,需求加一条日志定位问题,经过该项目可以在不从头部署服务的情况下,完结添加日志的操作。它还支撑线上毛病模拟、请求录制和成果回放等功用。
17、spring-cloud-tencent:腾讯开源的一站式微服务处理方案。根据 Spring Cloud 的服务管理结构,供给了微服务领域常见的服务注册与发现、配置中心、服务路由、限流熔断以及元数据链路透传等才干。
JavaScript 项目
18、ava:可以并发履行 JavaScript 测验的东西。这是一款 Node.js 的测验运转东西,具有简洁的 API、详细的错误输出、较高的履行效率等特色。
19、kbar:为你的站点供给指令面板界面的组件。这是一个即插即用的 React 组件,可以快速地为站点添加指令面板功用。让用户可以经过快捷键,灵敏、交互式地访问网站。
20、LogicFlow:滴滴开源的流程图修改结构。该项目供给了一系列流程图交互和修改的功用,支撑完成脑图、ER 图、UML、工作流等各种场景。
21、min:一款最小化的浏览器。它是仅包含查找、书签、暗码办理、广告屏蔽器等最根底功用的极简浏览器,适用于 Windows、Linux、macOS 操作体系。
22、PPTist:在线修改和演示 PPT 的运用。该项目选用 Vue3+TypeScript 构建,复原了大部分 Office PowerPoint 常用功用,支撑在线修改、演示和导出 PPT 文件。
Kotlin 项目
23、uhabits:一款帮助建立和维持好习气的运用。该软件完全免费、支撑中文、无广告和内购,在 Google 运用商铺上有 500 万的下载量。首先用户需求在 APP 上新建一个习气,可以设置频率、量化使命、提醒时刻等,每当完结一次习气就在运用上做一个标记,后边会有详细的图表展现习气养成情况。
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}
25、matrix-webcam:在“矩阵”中进行视频会议。可以让你在视频会议时,完成相似《黑客帝国》数字雨的作用,支撑 Teams/Zoom/Skype 视频软件,适用于 Windows、macOS、Linux 操作体系。
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)
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)
28、Umi-OCR:根据 PaddleOCR 的 OCR 图片转文字辨认软件。完全免费、可离线运用的开源软件,支撑截屏辨认文字、批量导入图片、横/竖排文字,还可以自动疏忽水印区域,适用于 Win10 操作体系。
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
Rust 项目
30、atuin:奇特的 shell 前史记录东西。该项目经过 SQLite 数据库存储 shell 前史,可以显示更多的 shell 前史、指令运转时刻、履行时刻等信息,还支撑挑选、过滤、计算、同步/备份等操作。
# 查找昨天下午3点之后记录的一切成功的 `make` 指令
atuin search --exit 0 --after "yesterday 3pm" make
31、this-week-in-rust:Rust 言语社区的每周摘要。该项目是由 Rust 社区建议,每周发布一期 Rust 相关动态,包含 Rust 言语的文章、视频、音频、开源项目共享,以及本周的更新(PR)、RFC(征求意见)和开发进度。
Swift 项目
32、isowords:3D 魔方单词消消乐游戏。这是一款用 Swift 编写的 iOS 游戏,玩家可以挑选 3D 立方体上的字母组成英文单词,假如一个字母被运用 3 次,该字母立方体就会消失,显示下面更多的字母。支撑限时、无限、多人三种游戏模式,以及每日挑战和全球排行榜。
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()
其它
34、code2flow:为动态言语生成调用图的东西。可根据源码文件生成漂亮的调用图的指令行东西,支撑 Python、JavaScript、Ruby 等动态言语。
# 装置
pip3 install code2flow
# 运用
code2flow 文件
35、Codex-CLI:让终端了解自然言语指令的东西。该项目运用 GPT-3 Codex 可将自然言语指令,转换为 PowerShell、Zsh 和 Bash 中的指令,比方输入 what‘s my IP?就能得到本机 IP。
36、collisions:讲解和演示哈希冲突的项目。包含了攻击介绍、演示文件和示例代码,快速了解 MD5 消息摘要算法的缺点,比方两个不同内容的文件生成相同 MD5 值。
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
38、testssl.sh:测验 TLS/SSL 加密的东西。它可以用来查看 Web 服务是否支撑 TLS/SSL 加密和协议,以及存在的缺陷。
开源书本
39、craftinginterpreters:《Crafting Interpreters》手撸解说器。该书作者在 Google 从事 Dart 言语的相关工作,书中内容是从一门小型自创编程言语 Lox 开端,详细介绍了如何为该言语制作解说器和虚拟机,推荐给想要学习编译原理或自创编程言语的同学。
40、ThinkDSP:《Think DSP》Python 数字信号处理。本书内容是将 Python 代码和数字信号处理结合,相较于干巴巴的文字,经过代码示例更简单了解相关概念,该书作者还著有《Think Python》等图书。
机器学习
41、motion-diffusion-model:根据文本生成 3D 人体运动的模型。论文《Human Motion Diffusion Model》第一作者开源的 PyTorch 完成。
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] 假如他们运用航空的方法运送货物在某些航线上可能要花几天的时刻才干卸货和通关
最终
假如你发现了 GitHub 上风趣的项目,就点击共享给大家伙吧。
以上便是本期的一切内容了,往期内容点击阅览
感谢您的阅览,假如觉得本期内容还不错的话 求赞、求共享 ❤️