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

第 54 期

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

C 项目

1. libevent

Star 6.8k Watch 485 Fork 2.6k
C 语言实现的轻量级、高性能事件通知库。基于事件驱动,支持多种 I/O 多路复用技术:epoll、poll、select、kqueue 等。libevent 就是这些系统基础库的统一封装,提供更高级的 API 并解决跨平台的问题

C# 项目

2. dotnet-docker

Star 2.5k Watch 205 Fork 1.2k
.NET Core 和 Tools 的 Docker 镜像

3. machinelearning

Star 7.2k Watch 622 Fork 1.6k
微软开源的 C# 机器学习框架。支持的机器学习类任务:分类、回归、聚类等,教程和视频。示例代码:

var dataPath = "sentiment.csv";
var mlContext = new MLContext();
var loader = mlContext.Data.CreateTextLoader(new[]
    {
        new TextLoader.Column("SentimentText", DataKind.String, 1),
        new TextLoader.Column("Label", DataKind.Boolean, 0),
    },
    hasHeader: true,
    separatorChar: ',');
var data = loader.Load(dataPath);
var learningPipeline = mlContext.Transforms.Text.FeaturizeText("Features", "SentimentText")
        .Append(mlContext.BinaryClassification.Trainers.FastTree());
var model = learningPipeline.Fit(data);

var predictionEngine = mlContext.Model.CreatePredictionEngine<SentimentData, SentimentPrediction>(model);
var prediction = predictionEngine.Predict(new SentimentData
{
    SentimentText = "Today is a great day!"
});
Console.WriteLine("prediction: " + prediction.Prediction);

C++ 项目

4. drogon

Star 3.8k Watch 147 Fork 310 中文
一款 C++ 的异步非阻塞高性能 Web 框架。功能强大、上手容易,使得用 C++ 语言构建各种类型的高性能 Web 应用,变得更加方便。示例代码:

#include <drogon/drogon.h>
using namespace drogon;
int main()
{
    app().setLogPath("./")
         .setLogLevel(trantor::Logger::kWarn)
         .addListener("0.0.0.0", 80)
         .setThreadNum(16)
         .enableRunAsDaemon()
         .run();
}

drogon

CSS 项目

5. css-diner

Star 1.7k Watch 34 Fork 250
通过游戏方式在线学习 CSS 选择器知识。初学者可以通过简单的动画界面,学习 CSS 多种选择器语法是如何筛选出页面的元素,虽然是英文网站但还算通俗易懂。在线尝试
css-diner

Go 项目

6. go-micro

Star 14.5k Watch 488 Fork 1.5k
一款 Go 插件化的基础框架。我只知道它是个 Go 微服务框架,基于它可以快速构建微服务。示例代码如图所示:
go-micro

7. pgweb

Star 6.6k Watch 151 Fork 497
基于 Go 实现的跨平台 PostgreSQL 数据库管理工具。通过本地起服务+浏览器的方式解决了跨平台的问题,启动命令:

三种方式:

参数:pgweb --host localhost --user myuser --db mydb
URL:pgweb --url postgres://user:password@host:port/database?sslmode=[mode]
Socket:pgweb --url "postgres:///database?host=/absolute/path/to/unix/socket/dir"

pgweb

8. go-admin

Star 2.9k Watch 82 Fork 568 中文
基于 Gin+Vue+Element UI 的前后端分离权限管理系统。文档齐全、还有视频教程适合新手学习,特点:

  • 遵循 RESTful API 设计规范
  • 基于 Gin Web API 框架,提供了丰富的中间件支持(用户认证、跨域、访问日志、追踪 ID 等)
  • 支持 Swagger 文档
  • 等等

go-admin

9. now

Star 2.8k Watch 56 Fork 172
Go 语言的时间工具库。项目简单、代码易懂,示例代码丰富:

import "github.com/jinzhu/now"

time.Now() // 2013-11-18 17:51:49.123456789 Mon

now.BeginningOfMinute()        // 2013-11-18 17:51:00 Mon
now.BeginningOfHour()          // 2013-11-18 17:00:00 Mon
now.BeginningOfDay()           // 2013-11-18 00:00:00 Mon
now.BeginningOfWeek()          // 2013-11-17 00:00:00 Sun
now.BeginningOfMonth()         // 2013-11-01 00:00:00 Fri
now.BeginningOfQuarter()       // 2013-10-01 00:00:00 Tue
now.BeginningOfYear()          // 2013-01-01 00:00:00 Tue

now.WeekStartDay = time.Monday // Set Monday as first day, default is Sunday
now.BeginningOfWeek()          // 2013-11-18 00:00:00 Mon

now.EndOfMinute()              // 2013-11-18 17:51:59.999999999 Mon
now.EndOfHour()                // 2013-11-18 17:59:59.999999999 Mon
now.EndOfDay()                 // 2013-11-18 23:59:59.999999999 Mon
now.EndOfWeek()                // 2013-11-23 23:59:59.999999999 Sat
now.EndOfMonth()               // 2013-11-30 23:59:59.999999999 Sat
now.EndOfQuarter()             // 2013-12-31 23:59:59.999999999 Tue
now.EndOfYear()                // 2013-12-31 23:59:59.999999999 Tue

now.WeekStartDay = time.Monday // Set Monday as first day, default is Sunday
now.EndOfWeek()                // 2013-11-24 23:59:59.999999999 Sun

Java 项目

10. roncoo-pay

Star 3.7k Watch 393 Fork 2.3k 中文
开源的 Java 互联网业务支付系统。拥有独立的账户体系、用户体系、支付接入体系、支付交易体系、对账清结算体系等,想学习支付相关技术的同学可以看看这个项目。项目结构如下:

roncoo-pay
|
├── roncoo-pay-app-notify //商户通知模块
|
├── roncoo-pay-app-order-polling //订单轮询模块
|
├── roncoo-pay-app-reconciliation //交易对账模块
|
├── roncoo-pay-app-settlement //交易结算模块
|
├── roncoo-pay-common-core //公共基础模块,不需要单独部署
|
├── roncoo-pay-service //核心业务模块,不需要单独部署
|
├── roncoo-pay-web-boss //运营后台模块
|
├── roncoo-pay-web-gateway //支付网关模块
|
├── roncoo-pay-web-merchant //商户后台模块
|
├── roncoo-pay-web-sample-shop //模拟商城模块

11. screw

Star 826 Watch 36 Fork 172 中文
简单好用的数据库表结构文档生成工具
screw

JavaScript 项目

12. tesseract.js

Star 22.4k Watch 477 Fork 1.5k
支持多种语言的文字识别的 JS 库,能够方便、准确的把图片中的文字解析提取出来(就能复制了)。基于 Tesseract OCR 引擎实现的 JS 版本,方便前端实现文字识别功能和在浏览器中直接使用。在线尝试
tesseract.js

13. mind-elixir-core

Star 635 Watch 18 Fork 82 中文
一款免费开源的思维导图 JS 库。在线尝试
mind-elixir-core

14. IconPark

Star 1.7k Watch 37 Fork 70 中文
该开源库提供了 1200+ 高质量图标,还有一个界面便于定制图标。强大之处是可以通过改变一个 SVG 文件的属性来变换出多种主题,支持导出 SVG、PNG、Vue 和 React 图标组件等。极大的方便了设计师和开发者,让他们有更多时间逛 HG 了
IconPark

15. next

Star 3.4k Watch 76 Fork 339 中文
一套企业级中后台 UI 解决方案,致力于解决设计师与前端在工作协同、产品体验一致性、开发效率方面的问题。就是设计师修改颜色之类的,可以生成一个 NPM 主题包,前端拿到这个包就可以直接还原设计师的设计
next

Kotlin 项目

16. DateTimePicker

Star 237 Watch 6 Fork 21 中文
一个简约、漂亮的日期时间选择器。支持 100% 自定义 UI,内置日期时间选择弹窗基于 Google BottomSheetDialog
DateTimePicker

Python 项目

17. real-live

Star 790 Watch 31 Fork 113 中文
一个网络直播聚合平台,能够观看视频直播、高清电视和收听广播电台等。目前支持 30+ 个视频直播、50+ 个高清电视频道和 70+ 个广播电台,比较全面的 Web 项目,用到的技术栈:

  • 前端/客户端:Qt、Vue、Flutter 等
  • 后端:MySQL、Redis、Kafka/RabbitMQ、Elasticsearch 等

real-live

18. taichi

Star 12.4k Watch 329 Fork 1.3k 中文
一个高性能图形学编程框架。它可以将你编写的 Python 代码转换成高效的汇编代码,在多 CPU 和 GPU 上运行,相当于是在用 Python 的语法写着色器。Taichi 解决了图形学配环境难,代码移植性差等问题,只需 pip install taichi 即可安装,编写的程序在 Windows、Linux、OSX 上均可运行,降低了新手学习图形学的门槛。示例代码:

import taichi as ti

ti.init(arch=ti.gpu)  # 指定编译后的函数在 GPU 上执行

n = 320
pixels = ti.field(dtype=float, shape=(n * 2, n))  # 提前声明数组存储类型,大小


@ti.func  # 该函数将是被调用的过程函数
def complex_sqr(z):
    return ti.Vector([z[0]**2 - z[1]**2, z[1] * z[0] * 2])


@ti.kernel  # 该函数将被 Taichi 编译
def paint(t: float):
    for i, j in pixels:  # 最外层循环会自动并行化
        c = ti.Vector([-0.8, ti.cos(t) * 0.2])
        z = ti.Vector([i / n - 1, j / n - 0.5]) * 2
        iterations = 0
        while z.norm() < 20 and iterations < 50:  # 其他语法和原生 Python 基本一致
            z = complex_sqr(z) + c
            iterations += 1
        pixels[i, j] = 1 - iterations * 0.02


gui = ti.GUI("Julia Set", res=(n * 2, n))

for i in range(1000000):
    paint(i * 0.03)
    gui.set_image(pixels)
    gui.show()

taichi

19. readthedocs.org

Star 6.1k Watch 227 Fork 3.3k
知名文档社区网站(readthedocs.org)的开源源码。该网站上托管了:Scrapy、requests、bootstrap-datepicker 等知名库的文档,我看了下项目是基于 Django 开发的,文件有些多看起来需要点耐心

20. learn-python3

Star 2.6k Watch 155 Fork 666
一份 Python3 的教程,请查收。该教程采用 Jupyter notebooks 形式,便于运行和阅读。并且还包含了练习题,对新手友好。缺点的话就是英文的教程,但是我都能看懂你肯定也可以

21. Computer-Networking-A-Top-Down-Approach-NOTES

Star 2.7k Watch 87 Fork 835 中文
《计算机网络-自顶向下方法》编程作业。包含问题和 Python 代码解答,Wireshark 实验部分为官方文档的翻译

Rust 项目

22. rustlings

Star 12.5k Watch 229 Fork 1.6k
该项目通过一个个简单练习小 demo,让初学者学习 Rust 的语法。通过简单的命令即可安装本项目,然后修改每个小练习,达到编译通过或者目标输出,通过后会进入下一关,有种闯关的成就感。运行方法:

安装:
git clone https://github.com/rust-lang/rustlings
cd rustlings
git checkout tags/4.0.0 # or whatever the latest version is (find out at https://github.com/rust-lang/rustlings/releases/latest)
cargo install --force --path .

安装完后,运行:
rustlings watch

rustlings

Swift 项目

23. ZLPhotoBrowser

Star 3.3k Watch 68 Fork 653 中文
轻量级照片选择框架。它使用简单、功能丰富,支持预览/相册内拍照及录视频、拖拽/滑动选择、编辑裁剪图片/视频等功能。示例代码:

// 使用起来非常简单
let ac = ZLPhotoPreviewSheet()
ac.selectImageBlock = { [weak self] (images, assets, isOriginal) in
    // your code
}
// 快速选择方法
ac.showPreview(animate: true, sender: self)
// 进入相册选择方法
ac.showPhotoLibrary(sender: self)

ZLPhotoBrowser

其它

24. Halfrost-Field

Star 6.8k Watch 376 Fork 1.2k 中文
前阿里巴巴资深后端工程师“霜神”的技术博客,分享前、后端的技术干货。作者日常工作语言是 Go,在进入阿里巴巴之前,做了几年前端工作。文章内容包含:机器学习、Go、JS、iOS、网络协议等系列
Halfrost-Field

25. ntfstool

Star 1.4k Watch 35 Fork 125 中文
一款为苹果电脑提供 NTFS 读写支持的免费工具。有了它就可以很方便的在苹果电脑上读写,从 Windows 系统拷贝数据的 U 盘和移动硬盘等。安装说明
ntfstool

26. hexo-theme-matery

Star 2.7k Watch 55 Fork 704 中文
一款采用 Material Design 和响应式设计的 Hexo 博客主题。特点:

  • 响应式设计,博客在桌面端、平板、手机等设备上均能很好的展现
  • 首页轮播文章及每天动态切换 Banner 图片
  • 时间轴式的归档页
  • 词云的标签页和雷达图的分类页
  • 丰富的关于我页面(包括关于我、文章统计图、我的项目、我的技能、相册等)
  • 支持文章置顶和文章打赏
  • 等等

hexo-theme-matery

27. highlight.js

Star 17.3k Watch 306 Fork 2.9k
让网页上的代码实现高亮的 JS 库,给代码点颜色瞧瞧。支持多种编程语言和样式,使用简单。示例代码:

<link rel="stylesheet" href="/path/to/styles/default.css">
<script src="/path/to/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
<pre><code>...</code></pre>

highlight.js

28. lite

Star 3.9k Watch 84 Fork 170
一款用 Lua 编写的超级轻量级的文本编辑器。在 Windows 下的 exe 文件虽然只有 300KB 左右,但颜值、功能和速度却一点都不差,甚至还支持使用自定义插件、配色主题等功能。小而美的文本编辑器
lite

29. L-ink_Card

Star 4.0k Watch 232 Fork 903 中文
该项目包含了制作一个迷你 NFC 智能卡的代码和教程。野生钢铁侠稚晖出品的演示视频,他还制作了很多别的有趣的东西,大家可以去看看很有意思
L-ink_Card

开源书籍

30. trpl-zh-cn

Star 1.8k Watch 70 Fork 257 中文
《Rust 程序设计语言(第二版)》中文翻译。在线阅读
trpl-zh-cn

31. jshistory-cn

Star 2.0k Watch 77 Fork 126 中文
《JavaScript 20 年》中文版。在线阅读
jshistory-cn

机器学习

32. nsfw-filter

Star 875 Watch 23 Fork 77
基于 tensefow.js 实现的过滤 NSFW(裸露、暴力等)图片的浏览器插件
nsfw-filter

33. computervision-recipes

Star 7.2k Watch 304 Fork 837
计算机视觉系统最佳实践,包含各种 CV 示例项目。示例使用 PytTorch 深度学习库+ Jupyter 文件,涵盖:图像分类、相似、识别、追踪等方面,适合对图像方面感兴趣的小伙伴阅读和学习
computervision-recipes

34. seq2seq-couplet

Star 4.6k Watch 128 Fork 934 中文
基于深度学习的对对联项目,你出上联它自动生成下联。我尝试了下,对得三观很正,还挺有意思。在线尝试
seq2seq-couplet