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

第 42 期

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

C 项目

1. linq4c

Star 20 Watch 1 Fork 2
如果你想在 C 中使用隔壁 C# 的 linq 方法,那么不妨来使用这个项目!这是它的 C 语言版。实现了 linq 的大部分方法(60+)。现在它还在不断完善中,欢迎更多的小伙伴加入共同维护

bool WhereCallback(void *item) {
    char *str= (char *)item;
    return str[0] == 'h';
}

void *SelectCallback(void *item) {
    return newStr("%s_1", (char *)item);
}

char *str1 = "huang", *str2 = "hai", *str3 = "feng";

ArrayList array = arrlist_new();
arrlist_append(array, str1);
arrlist_append(array, str2);
arrlist_append(array, str3);

Linq *lq = From(array);
ArrayList result = 
    lq
    ->Where(lq, WhereCallback)
    ->Select(lq, SelectCallback)
    ->ToArray(lq);

for(int i = 0; i < arrlist_size(result); i++) {
    printf("%s\n", arrlist_get(result, i));
}

linq4c

C++ 项目

2. nebula

Star 2.5k Watch 107 Fork 345 中文
Nebula Graph 是一款开源图数据库,目标是为超大规模的图数据提供高并发、低延时的读、写及计算服务。目前是世界上唯一能够容纳千亿个顶点和万亿条边、并提供毫秒级查询延时的图数据库解决方案。特点:

  • 全对称分布式架构
  • 可扩展
  • 高可用
  • 数据强一致
  • 类 SQL 查询语言

nebula

CSS 项目

3. iCSS

Star 7.8k Watch 524 Fork 851 中文
该项目围绕 CSS 话题,讲述了 CSS 相关的技巧、动画实现
iCSS

Go 项目

4. kubesphere

Star 3.0k Watch 93 Fork 467 中文
一款在主流容器调度平台 Kubernetes 之上构建的企业级分布式多租户容器管理平台。提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大降低开发、测试、运维的日常工作的复杂度。中文文档
kubesphere

5. starcharts

Star 335 Watch 5 Fork 20
生成 GitHub 星图的项目
starcharts

6. ultimate-go

Star 7.7k Watch 233 Fork 552
该项目是作者在学习 Go 过程中,对 Go 源码以及涉及到的相关的计算机基础知识的心得与总结。适合 Go 学习者阅读与学习。快来和作者一起深入了解 Go 源码,了解背后的计算机理论和 Go 的设计思想

Java 项目

7. easyexcel

Star 13.5k Watch 510 Fork 3.5k 中文
使用简单、上手快速、占用内存小且避免内存溢出的 Java 处理 Excel 工具。示例代码:

/**
* 最简单的读
* <p>1. 创建excel对应的实体对象 参照{@link DemoData}
* <p>2. 由于默认异步读取excel,所以需要创建excel一行一行的回调监听器,参照{@link DemoDataListener}
* <p>3. 直接读即可
*/
@Test
public void simpleRead() {
    String fileName = TestFileUtil.getPath() + "demo" + File.separator + "demo.xlsx";
    // 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
    EasyExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead();
}

8. lila

Star 6.5k Watch 221 Fork 958
一款基于 Scala 语言,完全免费、开源、没有广告、支持多语言的在线国际象棋游戏。在线试玩
lila

9. tablesaw

Star 2.1k Watch 134 Fork 407
一款包括数据框和可视化库,可用于加载、转换、过滤和汇总数据的 Java 实用程序。用 Tablesaw 处理数据会节省您的时间和精力,它还支持描述性统计,并且能够与 Smile 机器学习库完美集成。最近两年数据分析师职业大火,做好数据分析,就离不开数据可视化框架。Java 工程师掌握一种数据可视化库势在必行,示例代码:

public class BoxExample {

  public static void main(String[] args) throws Exception {
    Table table = Table.read().csv("../data/tornadoes_1950-2014.csv");

    Layout layout = Layout.builder().title("Tornado Injuries by Scale").build();

    BoxTrace trace =
        BoxTrace.builder(table.categoricalColumn("scale"), table.nCol("injuries")).build();
    Plot.show(new Figure(layout, trace));
  }
}

tablesaw

10. simple-java-mail

Star 679 Watch 33 Fork 181
一个轻量级 Java 邮件框架,支持复杂、自定义的发送电子邮件业务。包括经过身份验证的代理、附件、嵌入式图像、自定义标头和属性、强大的地址验证等,亮点是支持身份代理等功能,防止其他其他邮件服务拦截邮件

11. XUpdate

Star 840 Watch 21 Fork 146 中文
一套基于 Android 的全量版本更新整体解决方案。它除了提供 Android SDK 外,还附带了 Spring Boot 搭建的后台服务以及 Vue.js 编写的后台管理界面。主要解决中小企业 Android 版本管理混乱的问题,提供可定制化的解决方案。该框架提供了完全可插拔的版本更新,同时为了让使用者使用方便,还提供了后台服务和管理界面,使用的都是现下最流行的技术。完全做到灵活、方便,并提供了大量丰富的文档供大家参阅

XUpdate.newBuild(getActivity())
.updateUrl(mUpdateUrl)
.isAutoMode(true) // 如果需要完全无人干预、自动更新,需要 root 权限【静默安装需要】
.update();

XUpdate

JavaScript 项目

12. star-battle

Star 134 Watch 1 Fork 37 中文
一个使用 JavaScript ES6、Canvas 开发的飞船射击类游戏。在线试玩
star-battle

13. markdown-nice

Star 1.5k Watch 28 Fork 199 中文
能够自定义样式的 Markdown 编辑器。支持内容和自定义样式浏览器中实时保存、上传图片、脚注、公式等,输出的内容可一件复制到微信公众号、知乎、掘金、博客园和 CSDN 等一系列平台。极大的减轻了微信公众号文章的排版和编辑工作
markdown-nice

14. marktext

Star 15.2k Watch 266 Fork 1.1k
一个简单且优雅的开源 Markdown 编辑器,支持 Linux、macOS 和 Windows 下载地址。功能:

  • 实时预览(所见即所得)和简洁明了的界面
  • Markdown 扩展,例如数学表达式和 emoji 表情
  • 输出 HTML 和 PDF 文件
  • 各种编辑模式:源代码模式、打字机模式、专注模式
  • 等等

marktext

15. leonsans

Star 8.4k Watch 109 Fork 425
这是一个用 JS 编写的 Sans Serif 半衬线字体。Leon Sans 允许动态更改字体粗细并在 HTML 5 的 Canvas 元素中创建自定义动画、效果或形状,点击查看动画效果。PS:这个字体是作者来庆祝他刚出生的婴儿 Leon 的哦
leonsans

16. taro-music

Star 458 Watch 10 Fork 78 中文
基于 Taro 与网易云音乐 API 开发的网易云音乐小程序。技术栈为 typescript+taro+taro-ui+redux 目前主要是着重小程序端的展示,可以通过项目学习上述几个技术栈的使用和实战,从而能够快速使用 Taro 开发一个属于你自己的小程序,目前已实现的主要功能点如下:

  • 用户登陆
  • 我的关注列表
  • 最近播放列表
  • 歌曲播放页面
  • 等等

taro-music

Objective-C 项目

17. JHBlog

Star 714 Watch 26 Fork 166 中文
该项目整理了作者从初级 iOS 开发到中级的晋级之路的相关知识集合

Python 项目

18. healthchecks

Star 2.7k Watch 78 Fork 362
基于 Python3 和 Django2 的 Cron 定时任务监控工具,同时支持多种定时任务失败时的告警方式
healthchecks

19. GeneralNewsExtractor

Star 1.4k Watch 61 Fork 217 中文
基于《基于文本及符号密度的网页正文提取方法》论文用 Python 实现的正文抽取器,可以用来提取 HTML 中正文的内容、作者、标题。之前我看到这篇论文也想实现该抽取工具,但是我因为懒癌晚期躺下了,感谢kingname ‘带趟’ ✌️
GeneralNewsExtractor

20. bokeh

Star 13.1k Watch 475 Fork 3.3k
一个交互式的数据可视化 Python 库,专注于在 Web 浏览器中实现美观、直接的数据可视化功能。使用它可以让你快速和轻松地创建交互式图表、仪表板和数据可视化程序。流式数据集的可视化效果如下图:
bokeh

Ruby 项目

21. ruby-pinyin

Star 497 Watch 22 Fork 59 中文
可以把汉字转化为对应的拼音的库,同时能够较好的处理多音字的情况。正确处理多音字,示例代码如下:

PinYin.of_string('南京市长江大桥', :unicode)
return ["nán", "jīng", "shì", "cháng", "jiāng", "dà", "qiáo"]

能够正确的将“长”转为“chang2”,而不是“zhang3”

Swift 项目

22. EFQRCode

Star 3.6k Watch 81 Fork 357 中文
一个轻量级的、用来生成和识别二维码的纯 Swift 库,可根据输入的水印图和图标产生艺术二维码
EFQRCode

其它

23. reverse-interview

Star 12.4k Watch 195 Fork 833
如果当面试官问“你还有什么要问我的吗?”的时候你毫无头绪,那这个项目正是你所需要的。中文

24. pull

Star 824 Watch 21 Fork 132
一个 GitHub App,它可以让 fork 的仓库自动同步,保持和原仓库同步的神器。很多同学参与开源时会 fork 项目,但无法取得原项目的最新更新。此 Github App 可以很好的解决这个问题,截至目前已有几万仓库使用,截至目前已经自动生成了 70 万个 PR,该数字还在持续增加。注意:如果 master 有更改需要备份后使用,具体见英文文档
pull

25. chinese-colors

Star 1.4k Watch 18 Fork 135 中文
中国传统颜色在线手册,在线体验
chinese-colors

26. navi

Star 6.9k Watch 96 Fork 311
命令行辅助工具,有了它再也不用担心找不到历史输入过的命令、忘记命令等诸多烦恼
navi

教程

27. advanced-java

Star 41.2k Watch 2.1k Fork 11.4k 中文
一份 Java 工程师进阶知识点集合,内容涵盖:高并发、分布式、高可用、微服务等领域知识。这些知识点不局限于 Java 语言,后端的同学也可以从中收获很多,在线阅读

28. Nodejs-Roadmap

Star 1.4k Watch 48 Fork 211 中文
Node.js 技术栈学习指南。内容侧重于 Node.js 服务端,包含:Node.js 基础知识、Node.js 核心模块、主流框架实践、缓存、数据库、消息中间件、DevOps、HTTP 协议以及 Node.js 在微服务等,在线阅读

29. c9-python-getting-started

Star 5.9k Watch 443 Fork 1.6k
微软出品的零基础 Python 入门教程,内容浅显易懂。包含示例代码、演示的 PPT、配套的 Youtube 视频

机器学习

30. ChineseNLPCorpus

Star 1.2k Watch 52 Fork 289 中文
中文自然语言处理数据集

31. albert_zh

Star 2.3k Watch 97 Fork 435 中文
海量中文预训练 ALBERT 模型
albert_zh

32. cherry

Star 431 Watch 11 Fork 32 中文
简单易用的文本分类器。适用多种语言,自带两个预训练模型,使用预训练模型进行分类只需一行代码。使用自己的数据集进行定制训练也只需要十行代码。轻松达到高精确率,召回率。同时该库支持自定义分词算法、分类算法等。示例代码:

>>> res = cherry.classify(model='harmful', text=['她们对计算机很有热情,也希望学习到数据分析,网络爬虫,人工智能等方面的知识,从而运用在她们工作上'])
>>> res.word_list
[(2, '她们'), (1, '网络'), (1, '热情'), (1, '方面'), (1, '数据分析'), (1, '希望'), (1, '工作'), (1, '学习'), (1, '从而')]
>>> res.probability
# 返回结果分别对应 赌博,正常,政治,色情 4个 类别的概率
array([[4.43336608e-03, 9.95215198e-01, 3.51419231e-04, 1.68657851e-08]])