V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xueweihan
V2EX  ›  分享发现

《HelloGitHub》第 90 期

  •  2
     
  •   xueweihan · 2023-09-28 09:45:09 +08:00 · 1846 次点击
    这是一个创建于 451 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    简介

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

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

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


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

    C 项目

    1 、BlackHole:适用于 macOS 的虚拟音频驱动。在 macOS 上录制过视频的同学,应该都遇到过收录电脑声音的问题,采用公放的方式对环境要求极高。该项目是一款 macOS 上的虚拟音频驱动,它可以零延迟地将输出的音频传递给其他应用,从而不受周围环境的影响,轻松录制电脑的声音,支持 Intel 和 Apple 芯片。

    2 、c4:用 4 个函数实现的 C 语言编译器。该项目仅用了 500+ 行代码、4 个函数,就实现了一个小型 C 语言编译器。但因为它的代码过于精简,所以源码阅读起来并不轻松。

    C# 项目

    3 、optimizer:超好用的 Windows 优化器。这是一款强大的 Windows 系统优化工具,它体积小、功能丰富,支持包括中文在内的 22 种语言,能够禁用不必要的 Windows 服务、删除多余的启动程序、关闭用不到的功能,提升 Windows 系统的使用体验和性能。

    4 、Translumo:免费开源的屏幕实时翻译工具。该项目可以对屏幕上选定区域内显示的文本进行实时翻译,可识别英语、俄语、中文等语言。用户可自行选择 Tesseract 、WindowsOCR 、EasyOCR 多种 OCR 引擎,以及包括谷歌翻译在内的多种翻译源。

    C++ 项目

    5 、duckdb:一款类似 SQLite 的分析型数据库。该项目是用 C++ 写的 OLAP (联机分析处理)数据库,没有外部依赖项、不作为独立进程运行,可以看作是 OLAP 版本的 SQLite 。它方便、快速、易于使用,提供了丰富的 SQL 方言,支持 JOIN 、聚合、窗口函数、直接查询 CSV 和 JSON 文件等功能。

    SELECT * FROM 'HelloGitHub.csv';
    SELECT * FROM 'HelloGitHub.parquet';
    

    6 、kakoune:一款神似 Vim 的代码编辑器。拥有极简的界面和便捷的编辑模型的代码编辑器,虽然它的设计灵感源自 Vim ,但在功能和交互性上“青出于蓝而胜于蓝”。操作上更加的快捷方便,默认支持语法高亮、自动补全等功能,适用于 Linux 和 macOS 操作系统。

    7 、SafeLine:一款简单好用的 Web 应用防火墙。该项目底层基于 Nginx 的 Web 网关,作为反向代理接入网络。采用智能语意分析算法,清洗来自黑客的恶意流量,保护你的网站不受黑客攻击。它安装简单、免费版功能够用,但项目仅开源了核心算法和底层引擎。来自 @孤胆枪手 的分享

    8 、smartknob:自己动手制作一款触感智能旋钮。这是一款开源的智能旋钮设备,可自定义端点位置、虚拟制动、触觉反馈,并带有一个圆形 LCD ,十分炫酷好玩。

    9 、typesense:一款快如闪电的开源搜索引擎。该项目是用 C++ 编写的即时搜索引擎,具有开箱即用、搜索速度快、自动更正拼写错误、地理搜索、默认分词器支持中文等特点。

    CSS 项目

    10 、pokemon-cards-css:炫酷的神奇宝贝卡牌 CSS 效果。该项目是口袋怪兽卡高级 CSS 样式集合,使用了 3D 变换、滤镜、渐变等技术,实现了眩光、纹理、银河全息、垂直光束等效果。

    Go 项目

    11 、asynq:纯 Go 写的简单、可靠的分布式任务队列。这是一个基于 Redis 的轻量级异步任务队列,它会为每个任务启动一个 goroutine ,支持任务失败重试、优先级队列、定时任务、唯一任务等功能。

    12 、carbon:一个对开发者友好的 Go 时间处理库。这是一个功能丰富、容易上手的 Go 时间库,支持时间转换、时间差、时间旅行、星座、季节、农历、多语言等功能。

    lang := carbon.NewLanguage()
    lang.SetLocale("zh-CN")
    
    c := carbon.SetLanguage(lang)
    if c.Error != nil {
    	// 错误处理
    	log.Fatal(err)
    }
    
    c.Now().AddHours(1).DiffForHumans() // 1 小时后
    c.Now().AddHours(1).ToMonthString() // 八月
    c.Now().AddHours(1).ToShortMonthString() // 8 月
    c.Now().AddHours(1).ToWeekString() // 星期二
    c.Now().AddHours(1).ToShortWeekString() // 周二
    c.Now().AddHours(1).Constellation() // 狮子座
    c.Now().AddHours(1).Season() // 夏季
    

    13 、nezha:国产的轻量级服务器监控工具。这是一款名为“哪吒”的服务器监控面板,它安装简单、开箱即用,支持监控多个服务器的系统状态、SSL 证书状态、报警通知、流量监控、设置定时任务等功能,适用于 Linux 、Windows 、macOS 、OpenWRT 等主流系统。来自 @两双筷子 sqldc 的分享

    14 、sonyflake:Go 语言的分布式 ID 生成库。该项目是索尼开源的分布式唯一 ID 生成器,灵感来自知名的 Twitter 雪花算法( Snowflake )。它比 Snowflake 慢,但拥有更长的寿命,可以在更多的机器上工作,适用于更大的分布式集群。

    Java 项目

    15 、Algorithms:一个用 Java 实现的算法和数据结构的集合。算法和数据结构的重要性无需多言,该项目提供了常见的数据结构和算法最简单、优雅的 Java 代码实现,不管是用于学习还是开发都是不错的选择。来自 @孤胆枪手 的分享

    16 、Stirling-PDF:允许对 PDF 文件做各种操作的 Web 应用。这是一款功能强大、开箱即用的 PDF 工具,支持拆分/合并文件、添加/提取图片、压缩、加水印、添加/删除密码等功能,满足你对 PDF 文件的所有需求。

    JavaScript 项目

    17 、Bangumi:类似豆瓣的二次元爱好者社区客户端。这是一个基于 React Native 构建的二次元社区 Bangumi 第三方客户端。它免费、无广告、因爱好而生、专为移动端设计,支持番组进度管理、用户动态、贴吧、搜索、排行榜、标签等功能。

    18 、deprank:通过 PageRank 找到代码库中最重要的文件。该项目基于 PageRank 算法和源文件依赖关系,找到 JavaScript/TypeScript 代码仓库中被依赖最多的文件。

    19 、json-server:仅需 30 秒、不用写代码就能模拟接口数据。这是一款小巧的接口模拟工具,它使用起来十分简单,只需创建 JSON 文件,然后一条命令就能快速启动接口服务。

    # 安装
    npm install -g json-server
    # 启动
    json-server --watch db.json
    

    20 、mind-map:一个好用的 Web 思维导图。该项目包含一个不依赖任何框架的思维导图 JavaScript 库,以及一个采用 Vue.js+ElementUI 开发的支持本地部署、功能丰富的在线思维导图应用。

    import MindMap from "simple-mind-map";
    
    const mindMap = new MindMap({
      el: document.getElementById('mindMapContainer'),
      data: {
        "data": {
            "text": "根节点"
        },
        "children": []
      }
    });
    

    21 、yunxiaozhi:一款开源的校园教务查询微信小程序。该项目是由学生开发的智慧校园小程序,支持课程表查询、成绩查询、考试安排、空教室查询、水电查询等功能。

    Kotlin 项目

    22 、gkd:自定义屏幕点击的 Android 应用。该项目是基于无障碍功能的手机自动点击工具,支持自定义或订阅点击规则,可用来自动完成点击跳过广告、同意按钮、领红包等操作。

    Python 项目

    23 、argos-translate:用 Python 写的开源离线翻译库。该项目是基于 OpenNMT (神经网络机器翻译框架)的离线翻译 Python 库,它不依赖任何第三方翻译接口,支持翻译包括中文在内的 30 多种语言。

    import argostranslate.package
    import argostranslate.translate
    
    from_code = "en"
    to_code = "es"
    
    # Download and install Argos Translate package
    argostranslate.package.update_package_index()
    available_packages = argostranslate.package.get_available_packages()
    package_to_install = next(
        filter(
            lambda x: x.from_code == from_code and x.to_code == to_code, available_packages
        )
    )
    argostranslate.package.install_from_path(package_to_install.download())
    
    # Translate
    translatedText = argostranslate.translate.translate("Hello World", from_code, to_code)
    print(translatedText)
    # '¡Hola Mundo!'
    

    24 、mwmbl:一个用 Python 写的开源、非营利搜索引擎。这是一款采用 pandas 、FastAPI 、scikit-learn 、jusText 构建的非营利、无广告、无跟踪的小型搜索引擎,它界面简约、速度快,搜索结果无“外界因素”干扰。

    25 、prettymaps:绘制好看的地图海报的 Python 库。该项目可以将 OpenStreetMap 的地图数据绘制成漂亮的地图海报,上手简单可自定义填充颜色。

    26 、webdriver_manager:轻松管理 WebDriver 的 Python 库。经常写爬虫的小伙伴应该都遇到过找 WebDriver 路径的情况吧!用了这个项目,将无需一次又一次地重复寻找 WebDriver 在哪里啦。

    # 之前
    from selenium import webdriver
    driver = webdriver.Chrome('/home/user/drivers/chromedriver')
    
    # 现在
    from selenium import webdriver
    from webdriver_manager.chrome import ChromeDriverManager
    driver = webdriver.Chrome(ChromeDriverManager().install())
    

    27 、youre-the-os:模拟计算机操作系统的游戏。这是一个 Python 写的 Web 游戏,在游戏中玩家扮演的是一台计算机的操作系统。玩家必须通过管理进程、内存和 I/O 事件,不让进程闲置太久,因为进程等待太久就会退出,如果退出的进程达到一定数量后,计算机就会重启则游戏失败。

    Ruby 项目

    28 、docuseal:开源的文件在线签署平台。这是一款用 Ruby 写的在线签署文件平台,它开箱即用、容易上手、移动端友好,支持拖拽的方式创建 PDF 表单、在线填写和签名、自动发送邮件、用户管理等功能。

    Rust 项目

    29 、lettura:极简的开源 RSS 阅读器。这是一款基于 Tauri 开发的桌面 RSS 阅读器,它免费、无广告、界面清爽,适用于 macOS 和 Windows 操作系统。

    30 、privaxy:Rust 写的跟踪和广告拦截工具。该项目基于 MITM 中间人攻击原理,在两端之间建立双向隧道,通过过滤 URL 地址阻止广告的请求,实现拦截广告的效果。它占用内存少、速度快,支持自动更新过滤列表、统计信息显示、自定义过滤列表等功能。

    Swift 项目

    31 、TomatoBar:精致的 macOS 菜单栏番茄时钟。这是一款 macOS 上的番茄时钟应用,它小巧精致、界面简洁,支持设置工作和休息间隔、提示音、全局热键等功能。

    32 、XcodesApp:Xcode 安装和切换的实用工具。Xcode 是 macOS 系统向开发人员提供的集成开发环境,该项目可以轻松安装和切换各个版本的 Xcode ,采用 aria2 下载速度更快,Xcode 发行版数据来自苹果官网。

    其它

    33 、catppuccin:超看好的主题配色方案。该项目是由社区驱动的配色方案,内含以暖色调为主、色彩丰富的主题,可用于 VSCode 、JetBrains 、Vim 等编辑器和 IDE ,同样适用于各种编程语言的开发库、终端、操作系统、浏览器等应用。

    34 、keyviz:一款免费的实时键鼠输入可视化软件。该项目可以将鼠标和键盘的操作展示到屏幕上,让观众可以看到你的键鼠操作。适用于截图、录制视频、演示和协作等场景,支持 Windows 、Linux 和 macOS 操作系统。

    35 、LearnPrompt:免费开源的 AIGC 课程。该项目对新手友好、无需 AI 知识也可轻松学习,它不仅会传授如何用好 AIGC ,还会深入讨论 AI 相关的知识,内容包括 ChatGPT 、Runway 、Midjourney 、Stable Diffusion 、AI 数字人等方面。

    36 、python-weekly:Python 潮流周刊。这是一份由「豌豆花下猫」制作的每周更新的 Python 周刊,内容包括 Python 的精品文章、教程、开源项目、工具、视频和热门话题等。

    37 、TechStack:显示 GitHub 项目所用技术栈的浏览器插件。该项目可以展示用户正在访问的 GitHub 仓库的技术栈,帮助用户快速了解项目的更多信息。来自 @CorrectRoadH 的分享

    38 、webgl-fundamentals:从基础理论讲起的 WebGL 教程。这是一份从基础的数学知识讲起的 WebGL 系列教程,内含中文翻译版本。

    开源书籍

    39 、css-animation-101:《 CSS 动画入门秘籍》。这本书主要是介绍 CSS 中的动画( CSS animation ),内容包含什么是 CSS animation 、transition 属性、如何制作复杂的动效以及丰富的示例,教会你如何将 CSS 动画应用到你的项目中。

    40 、how-to-write-makefile:《跟我一起写 Makefile 》。该项目是陈皓整理自《 GUN Make Manual 》的系列文章 PDF 重制版,作者对其进行了排版优化、代码高亮等操作,阅读起来更加舒服,可作为初学者上手 Makefile 的教程。

    机器学习

    41 、hcaptcha-challenger:优雅地处理 hCaptcha 验证码的库。该项目不依赖浏览器插件和第三方反验证码服务,通过机器学习的方式处理 hCaptcha 验证码。它采用 ResNet 和 YOLOv8 处理分类和检测问题,通过 ONNX 打包模型降低使用门槛,让用户可在没有 GPU 的设备上运行代码,且无需安装 PyTorch 等依赖,优雅地面对 hCaptcha 验证码。来自 @QIN2DIM 的分享

    import os
    from pathlib import Path
    
    import hcaptcha_challenger as solver
    
    # Init local-side of the ModelHub
    solver.install()
    
    # Challenge prompt of binary challenge 
    prompt = "diamond bracelet"
    
    # Load challenge images, assuming you've already downloaded them.
    label_dir = Path(__file__).parent.joinpath("diamond_bracelet")
    images = [label_dir.joinpath(fn).read_bytes() for fn in os.listdir(label_dir)]
    
    def bytedance():
        classifier = solver.BinaryClassifier()
        # type: List[bool | None]
        # IF True --> click image
        # ELIF False --> bypass image
        # ELSE --> Something err  
        if result := classifier.execute(prompt, images):
            for i, name in enumerate(os.listdir(label_dir)):
                print(f"{name} - {result[i]}")
    
    if __name__ == "__main__":
        bytedance()
    

    42 、jax:谷歌开源的高性能科学计算库。这是一个结合了即时编译(JIT)、自动求导(Autograd)、线性代数编译器(XLA) 的数值计算 Python 库,用法和 NumPy 差不多。但 JAX 更快、更省内存,支持自动微分、自动向量化、并行计算等功能。

    from jax import grad
    import jax.numpy as jnp
    
    def tanh(x):  # Define a function
      y = jnp.exp(-2.0 * x)
      return (1.0 - y) / (1.0 + y)
    
    grad_tanh = grad(tanh)  # Obtain its gradient function
    print(grad_tanh(1.0))   # Evaluate it at x = 1.0
    # prints 0.4199743
    # 自动求导
    print(grad(grad(grad(tanh)))(1.0))
    # prints 0.62162673
    

    43 、sd-webui-EasyPhoto:你的智能 AI 照片生成工具。这是一款用于生成 AI 肖像画的 WebUI 插件,可用于生成专业质感的照片,相当于免费、可本地部署的妙鸭相机。

    最后

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

    以上就是本期的所有内容了,往期内容点击阅读,如果你觉得本期内容还不错的话 求赞、求分享 ❤️

    5 条回复    2023-10-07 11:28:46 +08:00
    iblessyou
        1
    iblessyou  
       2023-09-28 09:59:52 +08:00
    终于更新了……
    每期都追来着,这期好像挺久了。
    这个好像不好搜索,以前看到一个项目,当时没收藏,等需要时再翻了好久没找到
    iOCZ
        2
    iOCZ  
       2023-09-28 10:16:07 +08:00
    如何在茫茫 GitHub 上寻找有趣的项目呢?
    googlehub
        3
    googlehub  
       2023-09-28 10:19:49 +08:00
    挺好的,支持一下。
    cheneydog
        4
    cheneydog  
       2023-09-28 11:15:47 +08:00
    支持一下,都很有意思。
    xueweihan
        5
    xueweihan  
    OP
       2023-10-07 11:28:46 +08:00
    @iblessyou 月刊每个月 28 号就会更新,网站: https://hellogithub.com/ 支持搜索和收藏~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2692 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 08:21 · PVG 16:21 · LAX 00:21 · JFK 03:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.