热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开源月刊《HellGitHub》第79期

软件,存在,信息,hellgit

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

简介

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

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

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


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

C 项目

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

# 扫描指定 IP 的全部端口 masscan -p 443 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] 如果他们使用航空的方式运输货物在某些航线上可能要花几天的时间才能卸货和通关 

最后

以上就是本期的所有内容了,往期内容点击阅读

感谢您的阅读,如果觉得本期内容还不错的话 求赞、求分享 ❤️


推荐阅读
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 深入理解Java SE 8新特性:Lambda表达式与函数式编程
    本文作为‘Java SE 8新特性概览’系列的一部分,将详细探讨Lambda表达式。通过多种示例,我们将展示Lambda表达式的不同应用场景,并解释编译器如何处理这些表达式。 ... [详细]
  • 本文介绍了如何在不同操作系统上安装Git,以及一些基本和高级的Git操作,包括项目初始化、文件状态检查、版本控制、分支管理、标签处理、版本回退等,并简要提及了开源许可协议的选择。 ... [详细]
  • 【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库
    【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 优化后的标题:PHP分布式高并发秒杀系统设计与实现
    PHPSeckill是一个基于PHP、Lua和Redis构建的高效分布式秒杀系统。该项目利用php_apcu扩展优化性能,实现了高并发环境下的秒杀功能。系统设计充分考虑了分布式架构的可扩展性和稳定性,适用于大规模用户同时访问的场景。项目代码已开源,可在Gitee平台上获取。 ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 回顾两年前春节期间的一个个人项目,该项目原本计划参加竞赛,但最终作为练习项目完成。独自完成了从编码到UI设计的全部工作,尽管代码量不大,但仍有一定的参考价值。本文将详细介绍该项目的背景、功能及技术实现。 ... [详细]
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
  • 在当前的软件开发领域,Lua 作为一种轻量级脚本语言,在 .NET 生态系统中的应用逐渐受到关注。本文探讨了 Lua 在 .NET 环境下的集成方法及其面临的挑战,包括性能优化、互操作性和生态支持等方面。尽管存在一定的技术障碍,但通过不断的学习和实践,开发者能够克服这些困难,拓展 Lua 在 .NET 中的应用场景。 ... [详细]
  • 利用Python与Android进行高效移动应用开发
    通过结合Python和Android,可以实现高效的移动应用开发。首先,需要安装Scripting Layer for Android (SL4A),这是一个开源项目,旨在为Android系统提供脚本语言支持。SL4A不仅简化了开发流程,还允许开发者使用Python等高级语言编写脚本,从而提高开发效率和代码可维护性。此外,SL4A还支持多种其他脚本语言,进一步扩展了其应用范围。通过这种方式,开发者可以快速构建功能丰富的移动应用,同时保持较高的灵活性和可扩展性。 ... [详细]
author-avatar
小池子的思密达
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有