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

简介

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

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

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


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

C 项目

1、cmus:小巧的命令行音乐播放器。这是一个专为类 Unix 系统设计的轻量级命令行音乐播放器,可以播放本地的音乐文件。它简单易用、占用资源少、启动速度快,支持多种音频格式。

2、Remotery:轻量级的远程实时 CPU/GPU 分析器。该项目是用于监控 CPU 和 GPU 上多线程活动的工具。它提供了一个 C 文件,可轻松集成到项目中,并配备了一个实时监控 Web 界面,可通过浏览器远程观察和分析程序的性能。适用于监控游戏的实时运行性能和分析移动端应用的性能等场景。

C# 项目

3、RunCat_for_windows:在 Windows 任务栏飞奔的“小猫”。这是一个用 C# 写的小工具,它会在 Windows 任务栏显示一只奔跑的小猫动画,CPU 使用率越高它跑得越快。

C++ 项目

4、caesium-image-compressor:免费的图片压缩软件。这是一款用 C++ 编写的图片压缩工具,它拥有简洁的中文界面,支持 JPG、PNG 和 WebP 格式的无损压缩,同时配备了实时预览和批量处理的功能。此外,还提供了 Windows、Linux 和 macOS 客户端,以及无需安装的 Web 版本。

5、concurrentqueue:C++ 的高性能无锁并发队列。该项目是用 C++11 编写的快速、无锁、并发队列,支持多个线程同时进行生产者和消费者操作。它具有无需使用锁和单头文件的特点,适用于需要高性能并发处理的各种场景。

#include "concurrentqueue.h"

moodycamel::ConcurrentQueue<int> q;
q.enqueue(25); int item;
bool found = q.try_dequeue(item);
assert(found && item == 25);

6、input-overlay:显示用户操作输入的 OBS 直播插件。该项目是用来在直播中显示键盘按键、鼠标移动和游戏手柄按钮的插件,适用于 Windows 和 Linux 上的 OBS 直播软件,可用于游戏直播和教学演示等场景。

Go 项目

7、fscan:开源的内网安全扫描工具。该项目是用 Go 语言开发的内网扫描工具,提供了一键自动化全方位的漏洞扫描。它使用方便、功能全面,支持端口扫描、常见的服务器爆破、Web 应用漏洞扫描、NetBIOS 嗅探等功能。

8、go-humanize:让数字和时间更容易理解的 Go 语言库。这是一个提供人性化数字和时间的 Go 语言库,它通过提供格式化函数,帮助开发者将大小和时间等数字转化为更易于人类理解的形式,比如文件大小、相对时间、逗号分隔的数字、序数词等。来自 @DeShuiYu 的分享

fmt.Printf("That file is %s.", humanize.Bytes(82854982)) // That file is 83 MB.
fmt.Printf("This was touched %s.", humanize.Time(someTimeInstance)) // This was touched 7 hours ago.

9、mactop:专为苹果芯片打造的 Mac 性能监控工具。该项目用不到 1k 行的 Go 代码,实现了一个类似 top 命令的工具。它可以实时显示 Apple M 系列芯片的性能指标,包括 CPU、GPU 使用率、内存、网络和硬盘等信息。

10、micro:现代化的终端文本编辑器。这个项目是用 Go 写的基于终端的文本编辑器,可作为 Nano 的替代品。它下载即用、无需配置、跨平台,支持多光标编辑、语法高亮、鼠标、插件扩展等功能,特别适合在 SSH 远程连接服务器时进行文本编辑工作。

11、superfile:非常漂亮的终端文件管理器。这是一个现代终端文件管理器,为命令行文件操作提供了一个直观且漂亮的界面。它默认采用 Vim 风格的快捷键操作,还支持插件和主题自定义。

Java 项目

12、Acode:Android 手机上的代码编辑器。这是一款专为 Android 设备设计的代码编辑工具,它是轻量级的 Web IDE,具有即时预览、控制台和丰富的插件等特点,支持 HTML、Python、Java、JavaScript 等多种编程语言。来自 @虾华 的分享

13、blossom:私有部署的云端双链笔记软件。这是一个支持私有部署的云端存储双链笔记软件,可以将你的所有笔记、图片、个人计划安排保存在私有服务器上,并实现跨设备的实时同步。它提供 Markdown 编辑、双链笔记、全量备份、网页转换、多账号权限和统计等功能,兼容 Windows、macOS 和网页客户端。来自 @猎隼丶止戈reNo7 的分享

14、JSqlParser:解析 SQL 语句的 Java 库。该项目可以读取 SQL 语句,并分解成结构化的 Java 对象,实现用 Java 代码解析或动态生成 SQL 语句,支持 SQL 标准和主流的关系型数据库。

String sqlStr = "select 1 from dual where a=b";

PlainSelect select = (PlainSelect) CCJSqlParserUtil.parse(sqlStr);

SelectItem selectItem =
select.getSelectItems().get(0);
Assertions.assertEquals(
new LongValue(1)
, selectItem.getExpression()); Table table = (Table) select.getFromItem();
Assertions.assertEquals("dual", table.getName()); EqualsTo equalsTo = (EqualsTo) select.getWhere();
Column a = (Column) equalsTo.getLeftExpression();
Column b = (Column) equalsTo.getRightExpression();
Assertions.assertEquals("a", a.getColumnName());
Assertions.assertEquals("b", b.getColumnName());
}

15、odc:企业级数据库协同开发平台。该项目是提供数据库协同开发和数据管理的平台,专为提升 SQL 开发效率而设计。它基于 Spring Boot 和 Electron 构建,提供了 Web 和桌面客户端,支持 SQL 规范检查、变更回滚、数据生命周期管理、数据脱敏和操作审计等功能,兼容 OceanBase、Oracle、MySQL 和 Doris 等多种数据源。来自 @XiaoYangGzeyP 的分享

JavaScript 项目

16、papermark:开源的文件分享平台。该项目作为 DocSend 服务的开源替代方案,提供了自托管、简单易用的文档分享功能。它采用 Next.js+Tailwind CSS 构建,用户仅需上传文档,就能获得一个可在线访问文件内容的地址,并支持自定义域名和访问数据追踪等功能。

17、plane:开源的项目管理和问题跟踪平台。该项目是开源的项目管理系统,旨在简化团队的项目管理流程。它易于使用、可自托管,支持问题跟踪、周期管理、项目分解和分析统计等功能,可作为 JIRA 的替代品。

18、swr:用于数据请求的 React Hooks 库。该项目是帮助开发者简化数据请求逻辑的 React 库,支持自动处理数据的缓存、重验证、错误重试等多种功能,比如当用户重新点击/回到页面时,自动请求接口获取最新数据。

import useSWR from 'swr'

function Profile() {
const { data, error, isLoading } = useSWR('/api/user', fetcher) if (error) return <div>failed to load</div>
if (isLoading) return <div>loading...</div>
return <div>hello {data.name}!</div>
}

19、undraw-ui:基于 Vue 3 的评论组件。这是一个基于 Vue 3 的 UI 组件,提供了评论、内容折叠、回复、表情等功能,以及目录、搜索等组件。来自 @Mr.King 的分享

20、uppy:易于集成的 JavaScript 文件上传组件。这是一个轻量级的 JavaScript 文件上传组件,它提供了一个美观的用户界面,支持从多个源导入文件、断点续传、国际化,以及预览、编辑和多文件上传的功能。

import React, { useEffect } from 'react'
import Uppy from '@uppy/core'
import Webcam from '@uppy/webcam'
import { Dashboard } from '@uppy/react' const uppy = new Uppy().use(Webcam) function Component () {
return <Dashboard uppy={uppy} plugins={['Webcam']} />
}

Kotlin 项目

21、Lemuroid:Android 设备上的全能游戏模拟器。这款基于 Libretro 的多合一游戏模拟器,能够让你在 Android 设备上玩各种怀旧游戏。它提供了即时存档、本地多人游戏和自定义按键等功能,支持模拟 NES、GBA、3DS、PSP 等多种游戏机。

Python 项目

22、buku:强大的浏览器书签管理工具。这是一款开源的书签命令行管理工具,它轻量、隐私安全且易于使用,支持从主流浏览器导入书签、自动获取书签信息、跨平台同步和强大的搜索功能。

23、flagsmith:轻松管理功能开关和配置的平台。这是一个开源、功能齐全的特征标志(Feature flag)和远程配置平台,专为中小型团队设计。它是基于 Django REST framework 构建的 Web 应用,用于管理应用功能的开关和远程配置,支持 A/B 测试、多变量测试和组织管理等功能,适用于逐步推出新功能、进行市场测试、环境管理等场景。

24、marimo:创新的响应式 Python 笔记本。该项目是专为 Python 设计的响应式笔记本(notebook),即在与 UI 交互时自动执行并更新所依赖的代码单元格,从而保证代码和输出的一致性。它以纯 Python 文件的形式存储,便于管理和运行,支持作为脚本执行或部署为可交互的 Web 应用。

25、umap:高维数据降维的 Python 库。该项目是用于将高维数据映射到低维空间的 Python 库,帮助研究人员理解复杂数据集。与 t-SNE 相比,它在保持数据全局结构方面更加出色,能够高效地执行高维到低维的映射,适用于数据可视化、特征提取和聚类分析等多种场景。来自 @DeShuiYu 的分享

import umap
from sklearn.datasets import load_digits digits = load_digits() mapper = umap.UMAP().fit(digits.data)
umap.plot(mapper, labels=digits.target)

26、Windrecorder:你的个人屏幕记忆搜索工具。该项目是专为 Windows 设计的屏幕记录工具,并提供搜索和回放功能。它会持续录制屏幕内容,同时保证数据安全(不上传、不联网),利用 OCR 和图片识别技术,让用户可以轻松搜索和回看屏幕活动历史。

Rust 项目

27、bacon:后台运行的 Rust 代码检查工具。这是一个专为 Rust 语言设计的后台代码检查工具,它可以在后台运行,并即时地向开发者提供关于 Rust 代码的警告、错误和测试失败的反馈,让开发者专注于编写代码,而不是频繁地手动运行检查命令。来自 @DeShuiYu 的分享

28、bandwhich:查看带宽使用情况的命令行工具。这是一个开源的命令行网络带宽监控工具,它可以实时显示网络使用情况,包括进程、连接和远程地址等信息。

29、rust-by-practice:Rust 语言实战。该项目提供了大量的 Rust 实战练习,来帮助 Rust 新手学习和上手 Rust 语言。这里除了有大量的练习题和答案,还支持在线编辑和运行 Rust 代码。

Swift 项目

30、MacSymbolicator:符号化 macOS/iOS 崩溃报告的工具。这是一个简单的 Mac 应用,它能够将 macOS/iOS 崩溃报告中的十六进制地址,转换为源码中的函数和行号,帮助开发者分析应用的崩溃原因,支持 crash 和 ips 格式的崩溃报告。

其它

31、cloudflare_temp_email:免费搭建临时邮箱服务。该项目通过 CloudFlare 的免费服务,提供一个功能完备的临时邮箱服务,支持收发邮件、访问密码、自动回复、查看附件等功能。来自 @Dream Hunter 的分享

32、docs-linux-kernel-labs-zh-cn:Linux 内核实验。该项目是布加勒斯特理工大学的《Linux 内核教学》课程的中文翻译版,适合对 Linux 内核感兴趣的程序员学习。课程内容分为课程和实验两部分,其中实验是在基于 QEMU 的虚拟机中进行,亲身体验 Linux 内核的开发、构建、部署及执行过程。

33、LapisCV:开箱即用的简历模板。该项目提供了适用于 Obsidian 和 Typora 的简历模板,它基于 Markdown 格式、编辑方便、所见即所得,设计简洁且正式,借助编辑器可直接导出 PDF 格式的简历。

34、OV-Watch:低成本的开源智能手表。这是一个制作成本仅需 80 元的智能手表项目,它不仅提供了基本的手表功能,还支持睡眠模式、蓝牙、计步、卡包、指南针和心率测量等功能。

35、phonedata:手机号码归属地信息库。该项目整理了超过 40 多万条中国手机号段和归属地信息,数据均来自网上的公开数据。

开源书籍

36、LLMBook-zh.github.io:《大语言模型》。这是一本为想入门大模型技术的程序员/学生准备的开源书籍,内容不仅涵盖了大模型的基础原理和关键技术,还提供了配套的代码工具库和大模型,帮助读者快速入门并实践。

37、raytracing.github.io:《Ray Tracing in One Weekend》系列书籍。这是一套光线追踪技术的入门书籍,教你用 C++ 实现一个光线追踪器。光线追踪(Ray Tracing)是一种计算机图形学中的渲染技术,能够通过模拟光线在虚拟场景中的传播,生成出栩栩如生的真实感图像。

机器学习

38、facefusion:开源的 AI 换脸和增强工具。这是一款功能强大的人脸交换和增强工具,支持将图片/视频中的人脸替换成另一个人的脸、改善人脸和背景清晰度等功能,还提供了友好的 Web 界面(WebUI)和低门槛的 CPU 处理选项。

39、litellm:简化大模型 API 调用的工具。该项目能够将各种 AI 大模型和服务的接口,统一转换成 OpenAI 的格式,简化了在不同 AI 服务/大模型切换和管理的工作。此外,它还支持设置预算、限制请求频率、管理 API Key 和配置 OpenAI 代理服务器等功能。

from litellm import completion
import os ## set ENV variables
os.environ["OPENAI_API_KEY"] = "your-openai-key"
os.environ["COHERE_API_KEY"] = "your-cohere-key" messages = [{ "content": "Hello, how are you?","role": "user"}] # openai call
response = completion(model="gpt-3.5-turbo", messages=messages) # cohere call
response = completion(model="command-nightly", messages=messages)
print(response)

40、llama3-from-scratch:从头开始实现 Llama 3 的教程。该项目通过逐层构建 Llama 3 的方式,帮助人们深入理解 LLM 是如何工作的。作者使用 PyTorch 框架,实现了加载模型权重、文本的分词处理、模型配置以及逐层实现 Transformer 模型中的关键组件。

最后

感谢参与分​享开源项目的小伙伴们,欢迎更多的开源爱好者来 HelloGitHub 自荐/推荐开源项目。如果你发现了 GitHub 上有趣的项目,就点击这里分享给大家伙吧!

本期有你感兴趣的开源项目吗?如果有的话就留言告诉我吧~如果还没看过瘾,可以点击阅读往期内容。

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

《HelloGitHub》第 98 期的更多相关文章

  1. 《HelloGitHub月刊》第01期

    <HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...

  2. 《HelloGitHub月刊》第 01 期

    <HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...

  3. 家里蹲大学数学杂志 Charleton University Mathematics Journal 官方目录[共七卷493期,6055页]

    家里蹲大学数学杂志[官方网站]从由赣南师范大学张祖锦老师于2010年创刊;每年一卷, 自己有空则出版, 没空则搁置, 所以一卷有多期.本杂志至2016年12月31日共7卷493期, 6055页.既然做 ...

  4. HelloGithub

    <HelloGithub月刊>第一期   <HelloGithub月刊> 因为现在这个项目只有我自己做,只敢叫“月刊”,希望有志同道合者,快点加入到这个项目中来!同时,如果您有 ...

  5. 在 GitHub 学习,成长为自己想要的样子|HelloGitHub 访谈

    万事开头难,我们经过长期的策划和筹备,终于推出了 HelloGitHub 采访系列「开源项目作者的访谈」.这是一个采访个人开源项目作者的栏目,内容侧重于开源项目作者与开源的故事. 我们深知想要做好一个 ...

  6. python top project of 2013

    Hi Pythonistas! 测试和调试 Testing & Debugging 框架及Web Frameworks & Web 并发 Concurrency 任务调度 Job Sc ...

  7. 小米众筹新品---8H凉感慢回弹记忆绵枕 99元 上手开箱图

    在众目睽睽之下,商城终于成了杂货铺 众筹发布了第98期新品——8H凉感慢回弹记忆绵枕H1,售价为99元,主打舒适凉感,抗菌吸湿,三曲线护颈设计,3~5秒慢回弹. 本着程序员的读书历程:x 语言入门 — ...

  8. GitHub 热点速览 Vol.17:在?各家视频会员要不要?

    作者:HelloGitHub-小鱼干 摘要:经济实用,用作上周的 GitHub 热点的横批再合适不过.先不说 GitHub Trending 上不止一个的会员共享项目,免你找好友刷脸要会员,这项目实在 ...

  9. 如何短时间内快速通过Java面试

    当然是刷题啊 1-10期[10期]Redis 面试常见问答[09期]说说hashCode() 和 equals() 之间的关系?[08期]说说Object类下面有几种方法呢?[07期]Redis中是如 ...

  10. 有备无患「GitHub 热点速览 v.21.38」

    作者:HelloGitHub-小鱼干 数据库最重要的一个功能是容灾备份,备份不只是对数据库重要,对日常工作生活的我们一样重要,比如花了一个工作日写的代码没有备份(虽然可能只有 1 行-)总归是一个让人 ...

随机推荐

  1. Mysql之备份工具

    一.备份工具 1. mysqldump mysql服务自带的备份工具:mysqldump备份方式是采用的逻辑备份,其最大的缺陷是备份和恢复速度较慢,如果数据库大于50G,mysqldump备份就不太适 ...

  2. dva使用yarn编译出错

    1. 报错信息 ./src/models/example.jsModule build failed: TypeError: /Users/user/Desktop/learn-code/10.Rea ...

  3. SVN Windows10的安装

    SVN Windows安装与配置 先去到官网的下载链接:Download Apache Subversion Sources 然后点这个 binary packages 在这里能看到大多数的操作系统的 ...

  4. ARMS 助力羽如贸易打造全链路可观测最佳实践

    简介: 随着奢侈品行业在我国快速发展,跨境电商市场不断扩张.作为电商行业初创企业的上海羽如贸易有限公司(简称羽如贸易)积极进行数字化创新,打破固有零售思维,借助可观测能力有效提升用户体验,为业务飞速增 ...

  5. 阿里巴巴云数据仓库 MaxCompute 数据安全最佳实践

    ​简介:MaxCompute作为企业级SaaS模式云数据仓库,正在为客户业务及其数据提供持续的安全保护. MaxCompute 近期对产品的安全能力进行了全面升级 ,结合数据生命周期,针对数据误用.数 ...

  6. 数据的“敏捷制造”,DataWorks一站式数据开发治理范式演进

    简介: 企业大数据技术发展至今,历经了两次蜕变.第一次蜕变从最初的"小作坊"解决大数据问题,到后来企业用各类大数据技术搭建起属于自己的"大平台",通过平台化的能 ...

  7. [FE] WebStorm, ESLint: Trailing spaces not allowed

    在 WebStorm 中搜索文件 .eslintrc.js 在里面的 rules 项中追加规则: 'no-trailing-spaces' : ['off', { 'skipBlankLines': ...

  8. WinForms 使用 Image 的 FromFile 方法加载文件和使用 Bitmap 有什么不同

    本文来告诉大家使用 GDI+ 的 Image.FromFile 加载图片文件和使用创建 Bitmap 传入图片文件有什么不同 如使用下面代码加载图片 using var image = Image.F ...

  9. 2019-10-31-win10-uwp-录制任意应用屏幕

    title author date CreateTime categories win10 uwp 录制任意应用屏幕 lindexi 2019-10-31 09:10:38 +0800 2019-10 ...

  10. Excel根据名称批量导入图片

    一. 效果 二.方法一 在Excel中如果内容 ="<table><img src=""D:\文档\常用文件\图片导入测试\"&A2& ...