《HelloGitHub》第 44 期

2,750 阅读8分钟

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

简介

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

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

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

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

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


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

C 项目

1、scrcpy:一款可以用电脑显示并控制 Android 手机的开源工具。连接方便使用方便,手机无需 root、无需安装任何应用。支持 USB、Wi-Fi 两种方式连接,支持 Windows、macOS、Linux 三种操作系统。注意电脑端需要安装 adb 工具

C++ 项目

2、netdata:一款免费开源的 Linux 系统性能实时监控工具。它易于安装、占用资源少、功能强大,支持监控多种服务

3、musikcube:一个使用 C++ 编写的终端的音乐播放器,也可以作为一个音频引擎、元数据索引器和服务器。musikcube 可以在 Windows、MacOS 、Linux 以及带有 raspbian 的树莓派上轻松编译和运行。虽然它只能在终端上使用,但是功能应有尽有。使用方法详见 User Guide

4、Sourcetrail:一个免费开源、跨平台的可视化源码探索项目。能够十分高效的帮助使用者探索、熟悉陌生的代码,支持 C、C++、Python 和 Java 语言,同时提供了相关 SDK 用于拓展支持其它语言,相信在未来会提供更多语言的支持。程序员在它的帮助下可以快速熟悉陌生项目、学习开源项目、框架等,此等利器赶快去试试吧

Go 项目

5、guide:Uber 内部的 Go 风格规范。中文翻译版

6、evans:基于 Go 语言实现的支持交互模式的 gRPC 客户端,让调试、测试 gRPC API 更加容易

7、mkcert:无需配置,执行一条命令让本地的开发环境实现 HTTPS 的工具。效果如下:

$ mkcert -install
Created a new local CA at "/Users/filippo/Library/Application Support/mkcert" 💥
The local CA is now installed in the system trust store! ⚡️
The local CA is now installed in the Firefox trust store (requires browser restart)! 🦊

$ mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1
Using the local CA at "/Users/filippo/Library/Application Support/mkcert" ✨

Created a new certificate valid for the following names 📜
 - "example.com"
 - "*.example.com"
 - "example.test"
 - "localhost"
 - "127.0.0.1"
 - "::1"

The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem"

8、gochat:纯 Go 实现的轻量级即时通讯系统。技术上各层之间通过 rpc 通讯,使用 redis 作为消息存储与投递的载体,相对 kafka 操作起来更加方便快捷。各层之间基于 etcd 服务发现,在扩容部署时将会方便很多。架构、目录结构清晰,文档详细。而且还提供了 docker 一件构建,安装运行十分方便,推荐作为学习项目

Java 项目

9、DoraemonKit:一款功能齐全的 iOS 、Android、微信小程序客户端研发助手。它功能强大、接入方便、便于扩展,能够让每一个 App 快速接入一些常用的辅助开发工具、测试效率工具、视觉辅助工具,而且能够完美在 Doraemon 面板中接入一些定制的辅助工具

10、SpringCloud:基于 SpringCloud2.1 的微服务开发脚手架

11、newbee-mall:一基于 Spring Boot 2.X 及相关技术栈开发电商系统。包括商城系统及商城后台管理系统,支持商城常见的功能。该项目代码开源、功能完备、流程完整,对于新手开发者十分友好,仅需极短的时间就可以启动这个完整的商城项目。这是一个完整的电商项目,也推荐各个阶段的 Java 开发者学习或为项目贡献代码

JavaScript 项目

12、kiwi:还在为前端的全球化多语言而发愁吗?可以试试阿里开源的这项目

13、FileSaver.js:文件保存的 JavaScript 库,支持多种常见的文件存储格式:xls、txt、png 等。它可以方便的把数据转成文件,然后供用户下载。示例代码:

// 存储文本
var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
FileSaver.saveAs(blob, "hello world.txt");

14、qier-player:一款基于 React 的轻量级在线视频播放器组件,界面简洁、操作流畅具有视频播放器的基础功能。方便你在项目中轻松添加播放器组件,实现视频播放功能。如果你嫌原生 video 功能太少、操作太傻、界面太简陋,那这个播放器就是你的菜。你还能够通过阅读源码学习到关于生命周期执行顺序、父子组件传值的方式、以及如何利用定时器进行一些实时的状态更新的技巧。示例代码:

import React from 'react';
import ReactDOM from 'react-dom';
import QierPlayer from 'qier-player';

ReactDOM.render(<QierPlayer srcOrigin="你的视频地址"></QierPlayer>, document.getElementById('root'));

15、glut:一款用于团队内部 chrome 工具共享的工具,可以理解为 chrome 的小程序。它提供了比页面脚本更多的 API,可是实现更丰富的功能。可以随时在页面打开的小组件,它既可以作为页面的辅助工具或者也可以提供独立的功能。演示如下:

16、svrx:一个易于使用、插件化的前端开发工作台。帮助前端开发人员把折腾开发环境的时间,省下来做更有意义的事。快速开始:

  1. 安装:npm install -g @svrx/cli
  2. 创建目录:mkdir example && cd example
  3. 创建文件:echo '<html><body>Hello svrx!</body></html>' > index.html
  4. 运行:svrx

17、paint:在线体验下油画创作。呈上我的“杰作”:

PHP 项目

18、SyncMusic:基于 PHP Swoole 开发的在线弹幕点歌台。支持自由点歌、切歌、调整排序、删除指定音乐以及基础权限分级

Python 项目

19、pyflame:Uber 开源的 Python 性能分析工具。可以在不修改代码的情况下分析 Python 程序的性能,同时生成火焰图

20、Gooey:一个把 Python 命令行工具转化成 GUI 桌面工具的库。就我个人还是喜欢命令行的形式😅

21、opendevops:一款基于 tornado 的开源自动化运维云管理平台。支持:ITSM、权限系统、Web Terminnal 登陆日志审计、录像回放、监控报警系统、DNS 管理、配置中心等

22、KubeOperator:用 Python 语言开发的开源容器集群管理平台。在离线网络环境下通过可视化 Web UI 在 VMware、Openstack 或者物理机上规划、部署和管理生产级别的 Kubernetes 集群。开启你的 Kubernetes 之旅

Swift 项目

23、SwiftyGif:高性能且上手容易的 Swift GIF 库。示例代码:

import SwiftyGif

do {
    let gif = try UIImage(gifName: "MyImage.gif")
    let imageview = UIImageView(gifImage: gif, loopCount: 3) // Use -1 for infinite loop
    imageview.frame = view.bounds
    view.addSubview(imageview)
} catch {
    print(error)
}

24、Pock:一款在苹果电脑的触控栏中,显示 macOS 程序坞的开源工具

其它

25、infer:Facebook 开源的一个支持 Objective-C、Java 和 C 语言的静态分析工具,用它可以检测 Android、iOS 代码中的资源泄漏、内存泄漏、空指针等问题。建议集成到客户端发布的流程环节中,它能够将客户端应用的一些严重 Bug 扼杀在发布应用之前,同时减少应用崩溃和性能低下的情况

26、git-quick-stats:项目的 git 提交记录展示和统计的工具。支持:不同时间维度和用户名的统计、近期提交的概览等

27、TeachYourselfCS-CN:《TeachYourselfCS》自学计算科学的一份书单(中文翻译版)

28、funNLP:中文词库的集合。可用于:敏感词、语言检测、拆字词典等

29、CoolplaySpark:Spark 源代码分析、类库解读等

30、github-cards:非官方的 GitHub 卡片

教程

31、zh.javascript.info:《现代 JavaScript 教程》是以最新的 JavaScript 标准为基准的教程。通过简单但详细的内容,讲解从基础到高阶的 JavaScript 相关知识,能够帮助初中级前端提升 JavaScript 等前端技术水平。在线阅读

机器学习

32、ML-NLP:该项目总结了机器学习、NLP 面试中常考到的知识点和代码实现

33、openpilot:comma.ai 开源的自动驾驶系统

34、MNN:一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。架构设计如下:


“看完了,还不够?<往期内容> | 还不过瘾,那就看看每天更新的前端日报吧 <今日前端>

如果你发现了好玩、有意义的开源项目 点击这里 分享你觉得有趣的项目。

最后

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