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

简介

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

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

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


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

C 项目

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

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 解码、自定义等功能,追求极简的命令行启动+快捷键操作方式,让它成为了技术爱好者的首选视频播放器

C# 项目

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

C++ 项目

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

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

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

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

CSS 项目

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

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

Go 项目

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

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

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

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

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

Java 项目

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

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

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

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

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

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'));

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

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

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()
})

Objective-C 项目

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

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

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()

其它

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

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

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

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

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

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

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

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

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

开源书籍

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

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

机器学习

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

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

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

最后

如果你发现了 GitHub 上有趣的项目,就分享给大家伙吧。

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

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

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

  1. 「NGK每日快讯」2021.1.11日NGK第69期官方快讯!

  2. 《HelloGitHub月刊》第01期

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

  3. 《HelloGitHub月刊》第 01 期

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

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

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

  5. HelloGithub

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

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

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

  7. 中国移动MySQL数据库优化最佳实践

    原创 2016-08-12 章颖 DBAplus社群 本文根据DBAplus社群第69期线上分享整理而成,文末还有书送哦~ 讲师介绍章颖 数据研发工程师 现任中国移动杭州研发中心数据研发工程师,擅长M ...

  8. IT知识圈视频学习资源整理贴

    原文地址 热门课程 1.2019 尚学堂大数据全套视频教程(视频.源码.课件) 2.IDEA破解补丁(支持最新2019.2) 3.2019年 MySQL DBA 6期视频教程 4.微信小程序实战开发特 ...

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

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

随机推荐

  1. Django结合Echarts在前端展示数据

    前言 最近在用Django写UI自动化测试平台,基本快要弄完了,但是首页只有项目列表展示,一直感觉很空旷,所以想把一些关键数据在首页展示出来. 这时就想到利用Echarts这个开源项目,但是Djang ...

  2. A Child's History of England.6

    It was a British Prince named Vortigern who took this resolution, and who made a treaty of friendshi ...

  3. 爬虫系列:连接网站与解析 HTML

    这篇文章是爬虫系列第三期,讲解使用 Python 连接到网站,并使用 BeautifulSoup 解析 HTML 页面. 在 Python 中我们使用 requests 库来访问目标网站,使用 Bea ...

  4. 用UIScrollview做一个网易scrollviewbar

    效果如上,点击出现的图片是用UIImageview添加上的,比较简陋 我用了两种方法,第一种是直接在viewcontroller里面写代码 第二种是用了一个类来封装这个scrollviewbar 对外 ...

  5. ORACLE CACHE BUFFER CHAINS原理

    原理图如下: 一个cache buffer chains 管理多个hash bucket,受隐含参数:_db_block_hash_buckets(控制管理几个hash bucket)

  6. Virtual Destructor

    Deleting a derived class object using a pointer to a base class that has a non-virtual destructor re ...

  7. mysql之join浅析

    1.可以使用join吗?使用join有什么问题呢?-- >超过3个表不使用join,笛卡尔积问题 -->这些问题是怎么造成的呢? 如果可以使用 Index Nested-Loop Join ...

  8. AI 2021 年度报告

    建议大伙有空还是自己亲自读一下,虽然有点长,188页ppt. https://docs.google.com/presentation/d/1bwJDRC777rAf00Drthi9yT2c9b0Ma ...

  9. 【划重点】Python遍历列表的四种方法

    一.通过for循环直接遍历 user1 = ["宋江","林冲","卢俊义","吴用"] for user in use ...

  10. Tableau使用折线图和饼图的组合

    一.订单日期拖拽至列-右键天(具体到年月日) 二.订单日期拖拽至筛选器-年月-随机选择一个月的数据 三.创建计算字段-LOD-销售额 {EXCLUDE[类别]:SUM([销售额])} 四.销售额和刚刚 ...