《HelloGitHub》第 50 期

967 阅读6分钟

兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣!

简介

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

这是一个面向编程新手热爱编程对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编程语言的项目让生活变得更美好的工具书籍、学习笔记、教程等,这些开源项目大多都是非常容易上手,而且非常 Cool。主要是希望大家能动手用起来,加入到开源社区中。

  • 会编程的可以贡献代码
  • 不会编程的可以反馈使用这些工具中的 Bug
  • 帮着宣传你觉得优秀的项目
  • Star 项目⭐️

在浏览、参与这些项目的过程中,你将学习到更多编程知识提高编程技巧找到编程的乐趣

🎉 最后 HelloGitHub 这个项目就诞生了 🎉


以下为本期内容|每个月 28 号发布最新一期|点击查看往期内容

C# 项目

1、KSFramework:一个整合 KEngine、SLua/XLua 的 Unity 5 Asset Bundle 游戏开发框架。它为程序员、美术、策划、运营提供辅助工具集,很多大型游戏都在用的项目,快来学起来吧

C++ 项目

2、FlowChar:一个用来把伪代码生成纯字符流程图的小工具。让使用者仅需要写一段简单的伪代码,便可以生成对应的流程图。该项目结构清晰、使用简单,代码量少适合使用和“把玩”。示例图如下:

3、notepanda:这是一个用 C++ 和 Qt 开发的记事本项目。支持代码高亮、自定义字体样式,还可以命令行呼出:notepanda main.cpp,支持 Windows、Linux 和 MacOS 三大系统。可作为学习 Qt、如何做开源项目的实战

4、yuzu:免费开源的 Nintendo Switch 模拟器。刚刚开源的项目,目前仅支持 Windows、Linux,部分主流游戏:塞尔达传说、宠物小精灵、马里奥等

CSS 项目

5、css.gg:开源图标 UI 库。支持 CSS、SVG、Figma、NPM 等

Go 项目

6、grpcui:gRPC 的 Web 页面调试工具。该项目提供交互式的调试界面,让你开发 gRPC 的时候如虎添翼

7、uptoc:一个基于 Go 的静态博客部署到云存储的工具。静态博客不论是部署在 GitHubPages 还是 Netlify 等平台都存在国内访问速度慢的问题,解决这个问题最好的办法就是部署在国内的云存储,如腾讯云 COS、阿里云 OSS、七牛云等。借助该工具可以快速上传到上述云存储平台,加快你的静态博客访问速度

# 安装
curl -sSf http://uptoc.saltbo.cn/install.sh | sh
# 使用
uptoc --driver oss --region cn-beijing --access_key xxx --access_secret xxx --bucket demo-bucket /opt/blog/public

8、xlsx:读写 xlsx 文件的 Go 库。示例代码:

//example type
type structTest struct {
    IntVal     int     `xlsx:"0"`
    StringVal  string  `xlsx:"1"`
    FloatVal   float64 `xlsx:"2"`
    IgnoredVal int     `xlsx:"-"`
    BoolVal    bool    `xlsx:"4"`
}
structVal := structTest{
    IntVal:     16,
    StringVal:  "heyheyhey :)!",
    FloatVal:   3.14159216,
    IgnoredVal: 7,
    BoolVal:    true,
}
//create a new xlsx file and write a struct
//in a new row
f := NewFile()
sheet, _ := f.AddSheet("TestRead")
row := sheet.AddRow()
row.WriteStruct(&structVal, -1)

//read the struct from the same row
readStruct := &structTest{}
err := row.ReadStruct(readStruct)
if err != nil {
    panic(err)
}
fmt.Println(readStruct)

9、Yearning:Go 写的高颜值、开源 SQL 审核平台

Java 项目

10、jbake:基于 Java 的开源静态网站、博客生成器。常用命令如下:

# 快速开始
$ curl -s "https://get.sdkman.io" | bash
$ sdk install jbake
$ mkdir awesome-jbake && cd awesome-jbake
$ jbake -i
$ jbake -b -s

jbake -h #查看帮助文档 jbake -i #安装依赖 jbake -s #运行项目

11、kkFileView:基于 Spring boot 打造的多类型文件在线预览项目。支持多种文件例如:doc、ppt、xls、mp4、txt 等,功能强大便于快速开发和二次开发

12、zfile:免费开源的在线云盘项目。功能特性:

  • 文件夹密码
  • 支持在线浏览文本文件、视频、图片、音乐
  • 文件/目录二维码
  • 全局搜索
  • 等等

13、Schedulis:一个基于 Azkaban 开发的工作流任务调度系统。该调度系统具备高性能、高可用(去中心化多调度中心和多执行器)和多租户资源隔离等。特性:

  • 常规的 Command Shell 和 Linkis(HadoopMR、Hive、Spark、Sqoop、Python)大数据任务
  • 特色的数据检查和工作流之间的依赖任务
  • 完善的告警和工作流执行策略
  • 提供多种类型的参数设置,动态全局变量和简单易用的 UI

JavaScript 项目

14、typical:零依赖、仅 400 字节的输入动画库。示例代码:

import {
    type,
    type as loop
};

const steps = [1000, 'Ready', 1000, 'Set', 1000, 'Go'];

type(element, ...steps, loop);

15、HueJumper2k:用 JS 实现的 2KB 大小的 3D 赛车游戏。在线试试

16、avataaars-generator:基于 React 实现的卡通头像生成工具。在线尝试

17、jexcel:一个轻量级、功能强大的电子表格库。轻松实现复杂数据的表格管理,支持 JS 数组、JSON、CSV 等数据,并且可以实现 excel 文件的直接复制和粘贴。示例代码:

var data = [
    ['Jazz', 'Honda', '2019-02-12', '', true, '$ 2.000,00', '#777700'],
    ['Civic', 'Honda', '2018-07-11', '', true, '$ 4.000,01', '#007777'],
];

jexcel(document.getElementById('spreadsheet'), {
    data:data,
    columns: [
        { type: 'text', title:'Car', width:120 },
        { type: 'dropdown', title:'Make', width:200, source:[ "Alfa Romeo", "Audi", "Bmw" ] },
        { type: 'calendar', title:'Available', width:200 },
        { type: 'image', title:'Photo', width:120 },
        { type: 'checkbox', title:'Stock', width:80 },
        { type: 'numeric', title:'Price', width:100, mask:'$ #.##,00', decimal:',' },
        { type: 'color', width:100, render:'square', }
     ]
});

18、form-create:一个可以通过 JSON 自动生成具有动态渲染、数据收集、验证和提交功能的表单生成器。结合内置多种常用表单组件和自定义组件,轻松搞定复杂的表单,支持 iview、element-ui、and-design-vue

Python 项目

19、MrDoc:一个基于 Python 开发的在线文档系统。支持 Markdown 语法、文集分类、科学公式、流程图、思维导图等内容。清爽的阅读界面,还可以把内容打包导出为 Markdown 文件、EPUB 文件、PDF 文件。适合作为个人和小型团队的私有文档服务

20、geek_crawler:极客时间课程(目前仅支持图文、音频)下载到本地的 Python 脚本。需输入账号密码后,才能将指定极客时间专栏课程保存到本地,方便随时随地学习

21、fastapi:基于 Python 3.6+ 的高性能 Web 框架。“人如其名”用 FastAPI 写接口那叫一个快、调试方便,Python 在进步而它基于这些进步,让 Web 开发变得更快、更强。示例代码:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"Hello": "World"}

@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

# 启动命令:uvicorn main:app --reload

Swift 项目

22、vimr:Neovim 的 macOS 版

23、SwiftUI:该项目参考 SwiftUI 官方示例,记录代码和展示效果

其它

24、winget-cli:微软开源的 Windows 程序包管理器,帮助开发者快速的安装工具(预览版)。 目前有搜索、显示和安装软件包等功能,命令简单 winget install <tool>

25、fullstackopen:免费开源的 Web 全栈编程课程。一站式学习 React、Redux、Node.js、MongoDB、GraphQL 以及 TypeScript,这门课程会向你介绍基于 JavaScript 的现代 Web 编程技术。让你可以利用 ReactJS 搭配 Node.js 开发的 REST API,来搭建单页面应用程序

26、vim:Vim 官方仓库

27、tool-tips:玩转 IDE 加班远离你,IntelliJ IDEA 的技巧仓库

28、GitHub520:通过修改 hosts 解决 GitHub 访问慢、图裂问题的项目。基于 GitHub Action 定时访问 ipaddress 自动获取、输出 GitHub 相关域名对应的最新 IP 保证长期有效,用户不需要安装和运行代码,直接复制项目首页的内容便可生效

开源书籍

29、thinking-in-java-zh:《Java 编程思想》中文版。在线阅读

机器学习

30、pose-animator:一个基于 PoseNet 和 FaceMesh 可将你的 Pose 变成 2D 动画的工具。生成的动画人物会根据你的表情和肢体动作做出相应动作,来试试制作你专属的 2D 镜像人吧

31、Real-World-Masked-Face-Dataset:口罩人脸数据集

32、scikit-opt:一个封装了 7 种启发式算法的 Python 代码库。分别是:差分进化算法、遗传算法、粒子群算法、模拟退火算法、蚁群算法、鱼群算法、免疫优化算法,示例代码:

from sko.GA import GA_TSP

ga_tsp = GA_TSP(func=cal_total_distance, n_dim=num_points, size_pop=50, max_iter=500, prob_mut=1)
best_points, best_distance = ga_tsp.run()

33、photo2cartoon:将真实照片转换为卡通风格的开源项目。效果如下:


最后

如果你发现了 GitHub 上有趣的项目,欢迎在 HelloGitHub 项目提 issues 告诉我们。

关注公众号加入交流群