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

第 64 期

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

C 项目

1. X-TRACK

Star 2.3k Watch 51 Fork 514 中文
开源的 GPS 自行车码表。功能齐全且拥有美观的界面,支持离线地图、显示轨迹等功能。在线观看
X-TRACK

C# 项目

2. XboxDownload

Star 163 Watch 2 Fork 22 中文
Xbox 下载助手。支持 Xbox 游戏加速下载、比价等功能
XboxDownload

3. ToastFish

Star 597 Watch 4 Fork 55 中文
利用 Windows 通知栏背单词的软件。能够选择单词集合,并在背完后进行测验
ToastFish

C++ 项目

4. Plants-vs.-Zombies-Online-Battle

Star 233 Watch 6 Fork 18 中文
在没有游戏源代码的前提下,通过逆向工程和代码注入实现植物大战僵尸局域网对战模式。成功加载后解密模式的最后一关,会变为网络对战关卡。玩法为其中一个玩家放置植物进行防御,另一玩家放置僵尸进攻。项目结合逆向工程、C++和汇编相关技术,在无源代码的前提下为游戏增加功能。对逆向工程感兴趣的小伙可以看看源码
Plants-vs.-Zombies-Online-Battle

5. xpack

Star 205 Watch 13 Fork 52 中文
实现 C++ 结构体和 JSON/XML/BSON 互转的库。C++ 初学者可以通过该项目学到高阶的宏技巧和初级的 SFINAE 写法

#include <iostream>
#include "xpack/json.h" // 包含该头文件

struct User {
    int id;
    std::string name;
    XPACK(O(id, name)); // 添加宏定义XPACK在结构体定义结尾
};

int main(int argc, char *argv[]) {
    User u;
    string data = "{\"id\":12345, \"name\":\"xpack\"}";

    xpack::json::decode(data, u);          // json转结构体
    cout<<u.id<<';'<<u.name<<endl;

    string json = xpack::json::encode(u);  // 结构体转json
    cout<<json<<endl;
    return 0;
}

CSS 项目

6. normalize.css

Star 45.4k Watch 1.6k Fork 10.3k
用来消除浏览器默认样式的 CSS 库。不同浏览器对于同一个元素会有不一样的默认样式,比如:超链接线的颜色。相较于 reset(重制样式)解决办法,normalize.css 采用更加和平且高效地方式,解决了浏览器默认样式的问题,尽可能让同一个 CSS 文件在不同的浏览器上显示效果一样和正常
normalize.css

Go 项目

7. goim

Star 5.8k Watch 406 Fork 1.5k 中文
轻量级、高性能、支持集群的 IM 和实时推送服务。纯 Golang 实现支持广播消息、房间推送、安全验证和多协议支持等功能,还有基于 Kafka 的异步消息推送
goim

8. dtm

Star 2.5k Watch 74 Fork 240 中文
Go 语言实现的分布式事务管理器。优雅的解决了微服务架构下幂等、空补偿、悬挂等分布式事务难题,提供了简单易用、高性能、易水平扩展的分布式事务解决方案,除 Go 外还有 Python、PHP、Node.js 等语言的客户端

  // 具体业务微服务地址
  const qsBusi = "http://localhost:8081/api/busi_saga"
    req := &gin.H{"amount": 30} // 微服务的载荷
    // DtmServer为DTM服务的地址,是一个url
    saga := dtmcli.NewSaga("http://localhost:8080/api/dtmsvr").
        // 添加一个TransOut的子事务,正向操作为url: qsBusi+"/TransOut", 补偿操作为url: qsBusi+"/TransOutCompensate"
        Add(qsBusi+"/TransOut", qsBusi+"/TransOutCompensate", req).
        // 添加一个TransIn的子事务,正向操作为url: qsBusi+"/TransOut", 补偿操作为url: qsBusi+"/TransInCompensate"
        Add(qsBusi+"/TransIn", qsBusi+"/TransInCompensate", req)
    // 提交saga事务,dtm会完成所有的子事务/回滚所有的子事务
  err := saga.Submit()

dtm

9. erda

Star 1.9k Watch 47 Fork 228 中文
企业级一站式 PaaS 平台。基于 Kubernetes 以应用为中心的 DevOps 且支持微服务治理的多云架构,可以让复杂业务的开发、运维、监控和问题诊断变得更简单、更高效。能减轻使用不同的工具混搭技术底座和云平台的运维难度,同时还有漂亮、简单易用的界面设计
erda

10. hugo

Star 54.2k Watch 1.1k Fork 6.2k
Go 语言的静态网站生成器。静态网站生成器就是在本地把内容文件生成静态网页(HTML+CSS),然后把生成好的页面上传到服务器的工具。这种工具能够帮你轻松且快速地上线网站,而用户仅需选择喜欢的主题,便可以专注于内容创作。Hugo 作为最流行的静态网站生成器之一,拥有丰富的插件和主题,就算没有编程基础也能帮你快速制作出满意的博客或者网站
hugo

11. TopList

Star 4.2k Watch 107 Fork 853 中文
各大网站热门头条的聚合网站。在线预览
TopList

Java 项目

12. Mybatis-PageHelper

Star 10.7k Watch 527 Fork 3.0k 中文
MyBatis 通用分页插件,使用方法

13. guava

Star 42.4k Watch 2.5k Fork 9.4k
Google 开源的 Java 三方类库。该库提供包括集合、I/O、缓存、并发等开箱即用的工具方法,任何的 Java 应用都可以通过依赖的方式引入该项目。作为 Google 的开源项目,本身的源码也是非常值得开发者学习

14. dataease

Star 3.3k Watch 63 Fork 484 中文
开源的数据可视化和分析工具。采用 SpringBoot+Vue.js 技术栈实现,通过丰富的可视化图表让数据更加直观

  • 数据连接:支持关系型数据库、Excel 等文件、Hadoop 等大数据平台、NoSQL 等各种数据源
  • 图表展示:支持 PC 端、移动端及大屏
  • 制作图表:支持丰富的图表类型、支持拖拉拽方式快速制作仪表板
  • 数据引擎:支持直连模式、本地模式

dataease

JavaScript 项目

15. etherpad-lite

Star 11.5k Watch 364 Fork 2.2k
支持实时协作的富文本 WYSIWYG 编辑器
etherpad-lite

16. sjcl

Star 6.7k Watch 234 Fork 897
斯坦福大学开源的 JavaScript 加密库。用于 JS 的加密和解密,体积小且支持多种加密算法

sjcl.encrypt("password", "data") //加密数据
sjcl.decrypt("password", "encrypted-data") //解密数据

17. rubick

Star 2.0k Watch 37 Fork 214 中文
基于 Electron 开发的开源插件化工具箱。起初项目作者是 uTools 的用户但 uTools 没有开源,他又想接入公司内部的工具,然后 Rubick(拉比克)就诞生了。它实现了 uTools 的大部分功能,可以适配 uTools 丰富的开源插件,享受用完即走的便利
rubick

18. 50projects50days

Star 9.1k Watch 239 Fork 2.3k
50 个采用 HTML+CSS+JS 的前端小项目集合。项目包含网页源码和效果展示,标准入门级的前端开源项目。通过查看效果让新手感受前端的美妙,简单的源码降低了上手写代码门槛。或许其中某个网页的效果也会让工作多年的你大呼哇塞
50projects50days

19. gogocode

Star 2.0k Watch 43 Fork 119 中文
简化 JavaScript 抽象语法树(AST)处理的工具。借鉴了类似 jQuery 的预发和字符串构建 AST 的思想,大大简化了学习成本、降低了开发复杂度,官方团队在此基础上还开发出了 Vue2 转 Vue3 的插件
gogocode

Kotlin 项目

20. k-9

Star 6.2k Watch 362 Fork 2.2k
开源的 Android 电子邮件客户端
k-9

Python 项目

21. tqsdk-python

Star 2.1k Watch 101 Fork 507 中文
开源的 Python 量化交易框架。使用少量代码即可实现量化交易程序,还支持历史数据、实时数据、策略回测、实盘交易、图形化界面展示等功能。但免费版本仅提供全部的期货、商品/金融期权和上证50、沪深300 和中证500 的实时行情,付费版支持更多种类以及更加稳定的服务

from tqsdk import TqApi, TqAuth, TqAccount, TargetPosTask

api = TqApi(TqAccount("H海通期货", "4003242", "123456"), auth=TqAuth("信易账户", "账户密码"))      # 创建 TqApi 实例, 指定交易账户
q_1910 = api.get_quote("SHFE.rb1910")                         # 订阅近月合约行情
t_1910 = TargetPosTask(api, "SHFE.rb1910")                    # 创建近月合约调仓工具
q_2001 = api.get_quote("SHFE.rb2001")                         # 订阅远月合约行情
t_2001 = TargetPosTask(api, "SHFE.rb2001")                    # 创建远月合约调仓工具

while True:
  api.wait_update()                                           # 等待数据更新
  spread = q_1910.last_price - q_2001.last_price        # 计算近月合约-远月合约价差
  print("当前价差:", spread)
  if spread > 250:
    print("价差过高: 空近月,多远月")
    t_1910.set_target_volume(-1)                              # 要求把1910合约调整为空头1手
    t_2001.set_target_volume(1)                               # 要求把2001合约调整为多头1手
  elif spread < 200:
    print("价差回复: 清空持仓")                               # 要求把 1910 和 2001合约都调整为不持仓
    t_1910.set_target_volume(0)
    t_2001.set_target_volume(0)

tqsdk-python

22. Pillow

Star 9.0k Watch 215 Fork 1.7k
最流行的 Python 图像处理库。它的诞生是由于 PIL 的年久失修,现已于 2011 年停止维护,所以开源爱好者们就在 PIL 的基础上创建了 Pillow。该库支持丰富的图像格式和强大的图像处理功能,如果你要用 Python 处理图像,它绝对是不二之选

# 安装:pip install pillow
# 注意安装的版本,不同版本支持的 Python 版本也不同

from PIL import Image
# 打开 jpg 图像文件
im = Image.open('hellogithub.jpg')
# 转换成黑白图像
grayscale = tatras.convert('L')
# 展示图像
grayscale.show()

Pillow

23. JDMemberCloseAccount

Star 819 Watch 27 Fork 267 中文
用 Python 操作 selenium 的实战项目。该项目以全自动退出京东加入的店铺会员为例,介绍了 Python 自动化的知识和方案
JDMemberCloseAccount

24. bigdata_analyse

Star 1.1k Watch 20 Fork 179 中文
大数据分析实战项目的集合。该项目包含了淘宝、租房、招聘等数据的分析实例,不仅有 Python、SQL、HQL 的实例代码,还附上了数据集下载地址。想学习大数据的同学们,万事俱备就差你来学了
bigdata_analyse

25. OnlineJudge

Star 4.2k Watch 181 Fork 1.1k 中文
青岛大学开源的在线评测系统(OJ),采用 Django+Vue.js 实现。功能如下:

  • 基于 Docker 的一键部署
  • 支持 ACM/OI 两种比赛模式、实时/非实时评判
  • 丰富的可视化图表,一图胜千言
  • 支持多种编程语言:C/C++、Java、Python2/3
  • 比赛用户 IP 限制 (CIDR ranges)

OnlineJudge

Swift 项目

26. SwifterSwift

Star 10.3k Watch 290 Fork 1.3k
500合1 的原生 Swift 扩展库集合。集成了 500 多个原生 Swift 扩展的库,提供了更加方便的函数、语法糖、数据类型、UIKit 以及更高性能的 Cocoa 类,提高 Swift 的开发效率实现 1+1>2 的效果。适用于 iOS、macOS、tvOS 等系统

// 原来使用 UIAlertController 实现提醒的代码如下:
let alert = UIAlertController(title: "测试", message: "HelloGitHub", preferredStyle: .alert)
let okAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)

alert.addAction(okAction)
present(alert, animated: true, completion: nil)

// 改成 SwifterSwift 后:
let alert = UIAlertController(title: "测试", message: "HelloGitHub")
alert.show()

SwifterSwift

27. firefox-ios

Star 10.5k Watch 505 Fork 2.4k
Firefox 浏览器 iOS 源码
firefox-ios

其它

28. nocodb

Star 17.3k Watch 233 Fork 946
开源的智能表格制作工具。我最初以为 nocodb 只是数据库桌面管理工具,后来我发现自己狭隘了。它不仅可以把数据库和图片等数据转化成表格的方式展现,还提供了团队协作、工作流接入以及更加开放 API 服务。让团队在数据上工作,数据就在手边“即视即用”。知名电子表格-数据库混合体 Airtable 产品的开源替代品
nocodb

29. elasticsearch-dump

Star 5.8k Watch 155 Fork 734
Elasticsearch 数据导入/导出工具,可以用于 ES 的数据备份和迁移

30. freeCodeCamp

Star 330.4k Watch 8.4k Fork 26.6k
免费学习编程的开源社区。它创立于 2014 年,期间帮助了无数编程爱好者学习编程,中文站点于 2021 年上线。freeCodeCamp 采用在线编程闯关的学习形式,遇到问题还可以通过活跃的社区答疑解惑。平台鼓励新手多动手写代码、运行代码,提倡 RSA 即:遇到问题先阅读文档资料,然后求助于搜索引擎,最后实在没招了再提问,这样有助于培养良好的提问习惯终身受益。同时作为非盈利组织,freeCodeCamp 不仅提供了免费学习的课程还开源了网站代码
freeCodeCamp

31. developer-roadmap

Star 171.7k Watch 8.1k Fork 24.7k
开发者学习路线图。这是一份包含后端、前端、运维部署等方向的学习路径图,帮你指明前进的方向。中文
developer-roadmap

32. adarkroom

Star 5.5k Watch 265 Fork 1.4k
《小黑屋》是一款有趣的文字冒险类游戏。支持中文能够运行在浏览器、iOS 和 Android 设备,浏览器上默认会保存游戏进度到本地,另外还支持存档导入/导出防止丢失。友情提示:没玩过的同学刚开始容易摸不着头脑,因为事件触发需要时间,看滚动的文字+点击“添柴”耐心等 30 秒,就会触发新的事件了。如果你喜欢养成类游戏,那它一定会是你的菜。在线试玩
adarkroom

33. hyper

Star 36.8k Watch 472 Fork 3.0k
基于 Electron 的超高颜值终端工具。颜值即正义不仅在找对象时有用,挑工具时也同样奏效。它支持包括 Windows、Linux、macOS 等主流操作系统快下载试试,让你的终端漂亮得不像实力派
hyper

34. git-split-diffs

Star 2.2k Watch 11 Fork 27
更加直观展示代码改动的命令行工具。在终端上使用 git diff 查看修改时,默认的展示效果并不直观,该项目将代码的改动以类似 GitHub 网站的风格展示方便查看,还有多种主题可供选择
git-split-diffs

开源书籍

35. understand_linux_process

Star 786 Watch 50 Fork 154 中文
《理解 Linux 进程》

36. http-api-guide

Star 2.4k Watch 157 Fork 366 中文
《HTTP 接口设计指北》内容为设计 Web API 的一些建议

37. CheatSheetSeries

Star 18.3k Watch 510 Fork 2.6k
OWASP(开放式 Web 应用程序安全项目)速查表。项目由 OWASP 社区的安全专家编写,列举了多种安全问题和解决方案,从而更好地保护你的 Web 应用。在线阅读
CheatSheetSeries

机器学习

38. HyperLPR

Star 4.3k Watch 196 Fork 1.8k 中文
中文车牌识别开源框架。支持 Python、Android、C++ 等编程语言调用,接入简单准确度较高。推荐给有车牌识别需求的小伙伴
HyperLPR

39. insightface

Star 10.1k Watch 450 Fork 3.4k
支持 2D&3D 人脸分析的 Python 库。基于 PyTorch 和 MXNet 实现,采用先进的 ArcFace 人脸识别方法,高效地实现了人脸检测、识别等功能
insightface

40. Statistical-Learning-Method_Code

Star 8.1k Watch 293 Fork 2.4k 中文
用 Python 实现《统计学习方法》书中的算法

41. DouZero_For_HappyDouDiZhu

Star 590 Watch 7 Fork 122 中文
基于快手开源的斗地主强化学习框架,实现的欢乐斗地主 AI 助手
DouZero_For_HappyDouDiZhu