扫一扫
关注 HG 公众号
发现更多开源乐趣

第 56 期

兴趣是最好的老师,HelloGitHub 就是帮你找到编程的兴趣。

C 项目

1. ucore

Star 826 Watch 23 Fork 197 中文
清华大学操作系统课程,配套实验项目。推荐给有计算机结构原理、C 和汇编、数据结构基础并对操作系统感兴趣的同学,项目中包含教学视频、练习题、实验指导书等

C# 项目

2. RevokeMsgPatcher

Star 9.9k Watch 183 Fork 1.3k 中文
适用于 Windows 系统下电脑版微信、QQ 的防撤回工具
RevokeMsgPatcher

3. ContextMenuManager

Star 2.4k Watch 28 Fork 151 中文
一个纯粹的 Windows 右键菜单管理程序。功能:

  • 启用或禁用文件、文件夹、新建、发送到、打开方式等右键菜单项目
  • 右键菜单项目进行修改名称、修改图标、导航注册表位置、永久删除等操作
  • 右键菜单自定义添加项目,自定义菜单命令

ContextMenuManager

C++ 项目

4. spdlog

Star 11.8k Watch 433 Fork 2.5k
快速、上手简单的 C++ 日志库。示例代码:

#include "spdlog/spdlog.h"

int main() 
{
    spdlog::info("Welcome to spdlog!");
    spdlog::error("Some error message with arg: {}", 1);

    spdlog::warn("Easy padding in numbers like {:08d}", 12);
    spdlog::critical("Support for int: {0:d};  hex: {0:x};  oct: {0:o}; bin: {0:b}", 42);
    spdlog::info("Support for floats {:03.2f}", 1.23456);
    spdlog::info("Positional args are {1} {0}..", "too", "supported");
    spdlog::info("{:<30}", "left aligned");

    spdlog::set_level(spdlog::level::debug); // Set global log level to debug
    spdlog::debug("This message should be displayed..");    

    // change log pattern
    spdlog::set_pattern("[%H:%M:%S %z] [%n] [%^---%L---%$] [thread %t] %v");

    // Compile time log levels
    // define SPDLOG_ACTIVE_LEVEL to desired level
    SPDLOG_TRACE("Some trace message with param {}", 42);
    SPDLOG_DEBUG("Some debug message");
}

5. srpc

Star 593 Watch 26 Fork 179 中文
搜狗基于 C++ Workflow 的高性能 RPC 框架。与 thrift/brpc 协议兼容,支持 protobuf/thrift IDL一键迁移,核心代码量仅 1w 行。示例代码:

class ExampleServiceImpl : public Example::Service
{
public:
    void Echo(EchoRequest *request, EchoResponse *response, RPCContext *ctx) override
    {
        response->set_message("Hi, " + request->name());
    }
};

int main()
{
    SRPCHttpServer server;
    ExampleServiceImpl impl;
    server.add_service(&impl);
    server.start(1412);
    pause();
    server.stop();
    return 0;
}
访问:
curl 127.0.0.1:1412/Example/Echo -H 'Content-Type: application/json' -d '{message:"from curl",name:"CURL"}'

srpc

CSS 项目

6. tailwindcss

Star 43.6k Watch 538 Fork 2.0k
基于比组件更小、更灵活的工具类(utility-first)思想的 CSS 框架。这个思想简单来说就是用 class 保证灵活、便于自定义组件,而不是在组件基础上实现个性化。网上对这个框架褒贬不一,但我觉得挺好想学一下
tailwindcss

Go 项目

7. inlets

Star 8.3k Watch 118 Fork 558 中文
基于 Go 实现的免费内网穿透服务,即将本地服务暴露到公网。如果觉得之前的内网穿透工具不好用、还贵的话,可以试试这个项目,使用说明
inlets

8. syncthing

Star 38.9k Watch 988 Fork 3.1k
一个采用 Go 语言编写的免费、跨平台的文件同步工具。它不需要安装,只需要下载对应系统的压缩包解压后就可以直接运行和使用。拥有命令行、Web 和桌面程序多种操作模式,同时支持内网和互联网的文件同步,可以用来搭建私有网盘。又一个代替付费网盘的选择,如果考虑到昂贵的宽费用。可以把 syncthing 做为局域网下手机、电视和电脑共享文件的开源解决方案
syncthing

9. lazykube

Star 403 Watch 9 Fork 36 中文
支持鼠标操作和管理 K8s 的命令行工具。对比 k9s 命令行工具,可以不用去记那么多快捷键,直接用鼠标操作。解决公司不使用 rancher 和 dashboard 管理 K8s,只能通过堡垒机访问的场景。使用该工具只需要终端和鼠标,当然用到搜索功能时还是需要键盘的 😂
lazykube

10. go-zero

Star 9.0k Watch 194 Fork 1.1k 中文
一个可靠的 Go 语言 Web 和 RPC 框架。就算是 Go 新手基于该框架,也可以快速写出高性能可扩展的微服务。示例代码:

func main() {
  flag.Parse()

  var c config.Config
  conf.MustLoad(*configFile, &c)

  ctx := svc.NewServiceContext(c)
  server := rest.MustNewServer(c.RestConf)
  defer server.Stop()

  handler.RegisterHandlers(server, ctx)

  server.Start()
}

go-zero

Java 项目

11. Mindustry

Star 10.4k Watch 551 Fork 1.6k
一款 Java 编写的免费沙盒塔防游戏。支持多平台:Windows、Linux、macOS、Android
Mindustry

12. fiction_house

Star 2.5k Watch 68 Fork 781 中文
一个基于 SpringBoot 实现的小说和漫画在线阅读网站。网站功能齐全、资源丰富,同时支持 Web、安卓、微信小程序多平台。服务端分为网站和管理后台,采用 SpringBoot、MyBatis、MySQL、Redis 等技术实现,可当作 Java 新手实战项目学习
fiction_house

JavaScript 项目

13. AdminLTE

Star 38.9k Watch 2.1k Fork 16.5k
基于 Bootstrap 4.5 和 jQuery 的管理后台模板
AdminLTE

14. blockly

Star 9.2k Watch 478 Fork 3.1k
不会编程也可以写代码,通过拖拽模块自动生成代码的 Web 编辑器。谷歌开源的一个可视化编程的前端项目,支持自动生成:Python、JavaScript、PHP 等编程语言的代码,在线尝试的地址网络不好,可以通过 npm install blockly 安装后使用和学习
blockly

15. screenity

Star 5.7k Watch 128 Fork 420
一个强大的屏幕录制和标注的 Chrome 插件。特性:

  • 🎥 可以录制任何应用的内容,包含“色相头”
  • ✏️ 在屏幕上的任何地方,添加文本和箭头等注释
  • 👀 突出你的点击操作、光标
  • 💾 支持导出为 mp4、gif 等常用格式
  • ✂️ 修剪或删除录像

screenity

16. vue-luck-draw

Star 1.5k Watch 13 Fork 238 中文
一个基于 Vue 的大转盘/九宫格抽奖插件。在线尝试,特性:

  • 可自由配置奖品、中奖概率等
  • 支持同步、异步式抽奖
  • 适配移动端
  • 等等

vue-luck-draw

17. piano

Star 882 Watch 23 Fork 113 中文
基于 Omi 和 Omi Snippets 构建的钢琴应用。你不需要懂乐理知识,仅用键盘即可弹奏简单而熟悉的音乐,也借此项目感谢音乐和编程的陪伴!也致敬各位奋斗于 996 的代码家和打工人,音乐不曾辜负任何人,正如 Leehom Wang 歌曲中唱到:如果世界太危险,只有音乐最安全,带着我进梦里面,让歌词都实现!上面这段是作者写的推荐语,我本来想从项目的角度再夸下这个项目,但我放弃了。虽然我之前推荐过的那个钢琴项目弹的比这个要好听,但我更喜欢这个项目。因为我从他的项目中感受到满满敬意和“爱”,致敬每一位奋斗的“代码家”,HG 爱你们。在线尝试,示例代码:

playSong(song) {
  this.setSong([...song])
  let offset = 0
  let time = 0
  let playSong = async () => {
    // 右边是从外部来中断递归
    if (offset < song.length && this.store.data.song.length > 0) {
      switch (typeof song[offset]) {
        // 简谱2演奏方法 根据 ++12345--6. 简单旋律情况
        case 'string':
          let letters = song[offset].match(/[0-9]/g)
          switch (letters.length) {
            case 1:
              time = this.handleString(song, offset)
              break
            default:
              time = this.handleStrings(song, offset)
              break
          }
          break
        // 简谱1演奏方法 根据 CDEFGAB,复杂旋律情况,比如有和弦
        case 'object':
          console.log(song[offset]['note'])
          time = song[offset]['time'];
          this.playNote(song[offset]['note'])
          break;
        case 'number':
          // 休止符
          switch (song[offset]) {
            case 0:
              time = 1000
              break
          }
          break
      }
      await new Promise((resolve) => {
        let timer = setTimeout(() => {
          clearInterval(timer)
          resolve()
        }, time)
      })
      offset++
      // 自定义事件,跟下面底部的音符自动跳动结合
      this.add()
      playSong()
    } else {
      // 暂停播放
      clearTimeout(this.timer)
      this.store.data.song = []
      this.store.data.count = 0
      return
    }
  }
  playSong()
}

piano

Objective-C 项目

18. Sloth

Star 4.4k Watch 55 Fork 105
一款 macOS 系统下显示进程打开的文件、socket、管道等信息的工具。就像桌面版的 lsof,快来试试吧
Sloth

PHP 项目

19. freenom

Star 1.5k Watch 23 Fork 1.8k 中文
自动续期 Freenom 免费域名的工具。Freenom 是一个提供免费顶级域名的商家,不过申请的域名需要每年定时续期,否则会被回收。有了这个项目,白 piao 顶级域名就是那么简单
freenom

Python 项目

20. running_page

Star 1.3k Watch 26 Fork 240 中文
一个展示个人跑步主页的 Python 项目。特性:

  • GitHub Actions 管理自动同步跑步进程及自动生成新的页面
  • Gatsby 生成的静态网页,速度快
  • Mapbox 进行地图展示
  • 支持 Nike、Runtastic、佳明、Keep 的数据
  • 自动备份 gpx 数据,方便备份及上传到其它软件

running_page

21. gopup

Star 1.4k Watch 39 Fork 206 中文
采集各种权威公开数据的 Python 库。示例代码:

# 安装:pip isntall gopup 

import gopup as gp
covid_baidu_df = gp.covid_baidu(indicator="热搜谣言粉碎")
print(covid_baidu_df)

gopup

22. flask-state

Star 607 Watch 16 Fork 50 中文
一款轻便的机器状态监控 Flask 插件。示例代码:

flask_state.init_app(app)
// npm
import 'echarts';
import 'flask-state/flask-state.min.css';
import {init} from 'flask-state';
// Create a DOM node with ID 'test'. After init() binds the node, click to open the listening window
init({dom:document.getElementById('test')});

flask-state

23. python-cheatsheet

Star 24.6k Watch 987 Fork 4.4k
全面且实用的 Python 备忘录。这个东西特别适合我这个上了年纪的人,比如:忘记怎么用 Python 写正则、要搞个进度条忘记库的名字和基本用法、用 pandas 处理数据忘记方法需要的参数等等。正当我觉得自己需要“回炉重学”的时候发现了这个项目,有了它上面的问题都可以找到拿来即用的代码片段。我又是那个快乐的 Pythoneer 了,示例代码:

# $ pip3 install tqdm
>>> from tqdm import tqdm
>>> from time import sleep
>>> for el in tqdm([1, 2, 3], desc='Processing'):
...     sleep(1)
Processing: 100%|████████████████████| 3/3 [00:03<00:00,  1.00s/it]

Swift 项目

24. eul

Star 5.7k Watch 56 Fork 202 中文
一款极简免费的 macOS 状态监控工具。我就在用,强烈推荐给你
eul

其它

25. winapps

Star 4.9k Watch 105 Fork 222
一个让你在 Linux (Ubuntu/Fedora) 系统里使用 Windows 办公软件的项目。支持 Microsoft Excel、Word、PowerPoint、Adobe Photoshop 等
winapps

26. Front-End-Interview-Notebook

Star 3.8k Watch 84 Fork 917 中文
一份非拼凑、优秀的前端面试复习笔记。以提问方式发出问题,并给出了作者的答案,内容涵盖:HTML、CSS、JS、算法、计算机网络等方面。作者拿到了很多大厂 offer,然后把这些东西总结整理下来送给准备面试、换工作的前端小伙伴

27. pi-hole

Star 31.5k Watch 715 Fork 2.0k
一个免费开源、部署简单的 DNS sinkhole 项目。没关系,我也不明白 DNS sinkhole 是个啥,就知道用它可实现路由器层屏蔽广告的功能。需要先在树莓派安装这个项目,然后配合支持自定义 DNS 的路由器,就可以实现该网络下的全设备广告自动屏蔽。详细步骤
pi-hole

28. CopyTranslator

Star 11.6k Watch 369 Fork 1.5k 中文
支持网页和 PDF 的划词翻译工具。有了它就可以解决阅读 PDF 文件时,要翻译大段内容情况下的乱码、换行、翻译不准的问题
CopyTranslator

29. styleguide

Star 28.0k Watch 1.3k Fork 10.8k
谷歌的代码风格指南。每个大型项目都有自己的代码风格,当代码的风格统一时将更容易被理解。本项目是谷歌项目的代码风格说明,包含:C++、C#、Swift、Python、Java 等语言

30. upptime

Star 7.8k Watch 85 Fork 332
一个免费开源的网站正常运行时间(uptime)监控服务。之所没有任何费用是因为实现方法都是完全基于 GitHub 提供的免费服务,比如:使用 GitHub 的 Action 每隔 5 分钟访问一次目标网站,获取网站最新的状态。然后通过 GitHub Issues 记录和报告异常,最后在 GitHub Pages 上可视化展示网站的运行状态。就很“绿色无公害”,我特别喜欢
upptime

机器学习

31. examples

Star 16.4k Watch 401 Fork 7.6k
关于视觉、本文等方面的 PyTorch 的示例集合。包含:使用 Convnets 的图像分类(MNIST)、生成对抗网络(DCGAN)等

32. EasyOCR

Star 11.8k Watch 267 Fork 1.4k 中文
支持多种语言的即用型的 Python OCR 库,包括中文、日文、韩文等。示例代码:

import easyocr
reader = easyocr.Reader(['ch_sim','en']) # need to run only once to load model into memory
result = reader.readtext('chinese.jpg')
# 输出
[([[189, 75], [469, 75], [469, 165], [189, 165]], '愚园路', 0.3754989504814148),
 ([[86, 80], [134, 80], [134, 128], [86, 128]], '西', 0.40452659130096436),
 ([[517, 81], [565, 81], [565, 123], [517, 123]], '东', 0.9989598989486694),
 ([[78, 126], [136, 126], [136, 156], [78, 156]], '315', 0.8125889301300049),
 ([[514, 126], [574, 126], [574, 156], [514, 156]], '309', 0.4971577227115631),
 ([[226, 170], [414, 170], [414, 220], [226, 220]], 'Yuyuan Rd.', 0.8261902332305908),
 ([[79, 173], [125, 173], [125, 213], [79, 213]], 'W', 0.9848111271858215),
 ([[529, 173], [569, 173], [569, 213], [529, 213]], 'E', 0.8405593633651733)]

33. DeepLearningProject

Star 4.2k Watch 204 Fork 617
哈佛大学开源的深度学习教程