《HelloGitHub》第 71 期

2022-04-07 14:04:43 浏览数 (1)

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣!

简介

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

https://github.com/521xueweihan/HelloGitHub

这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、Java、Go、C/C 、Swift...让你在短时间内感受到开源的魅力,对编程产生兴趣!


以下为本期内容|每个月 28 号更新

C 项目

1、h2o:高性能 HTTP 服务器。相较于传统 Web 服务器,它充分利用了 HTTP/2 的资源加载优先级和服务器推送技术,所以在静态文件方面性能明显优于 Nginx 服务器

地址:https://github.com/h2o/h2o

2、chibicc:迷你 C 编译器。虽然它只是一个玩具级的编译器,但是实现了大多数 C11 特性,而且能够成功编译几十万行的 C 语言项目,其中包括 Git、SQLite 等知名项目。而且它项目结构清晰、每次提交都是精心设计、代码容易理解,对编译器感兴趣的同学可以从第一个提交开始学习

地址:https://github.com/rui314/chibicc

C# 项目

3、CliWrap:执行外部命令的 C# 库。提供启动进程、输入/输出重定向、等待完成、管道等功能,支持 Windows、Linux、macOS 操作系统

代码语言:javascript复制
using CliWrap;

var result = await Cli.Wrap("path/to/exe")
    .WithArguments("--foo bar")
    .WithWorkingDirectory("work/dir/path")
    .ExecuteAsync();
    
// 输出包括:
// -- result.ExitCode        (int)
// -- result.StartTime       (开始时间)
// -- result.ExitTime        (结束时间)
// -- result.RunTime         (执行命令耗时)

地址:https://github.com/Tyrrrz/CliWrap

4、DreamScene2:小巧的 Windows 动态桌面工具。适用于 Windows10/11 系统,支持视频、网页动画播放

地址:https://github.com/he55/DreamScene2

C 项目

5、vcpkg:微软开源的 C/C 包管理工具。安装和管理 C/C 依赖的命令行工具,适用于 Windows、Linux 和 macOS 操作系统

地址:https://github.com/microsoft/vcpkg

6、finalcut:用于创建基于文本的用户界面的 C 库。它除了支持鼠标操作和同时处理多个文本窗,还提供了常见的对话框、按钮、复选框、单选按钮、输入行、列表框、状态栏等控件

地址:https://github.com/gansm/finalcut

CSS 项目

7、magic:炫酷的 CSS3 动画库

地址:https://github.com/miniMAC/magic

Go 项目

8、nali:离线查询 IP 地理信息和 CDN 服务提供商的命令行工具

代码语言:javascript复制
$ nali 1.2.3.4
1.2.3.4 [澳大利亚 APNIC Debogon-prefix网络]

地址:https://github.com/zu1k/nali

9、revive:快速且易扩展的 Go 代码检查工具。它比 golint 更快、更灵活,深受广大 Go 开发者的喜爱

地址:https://github.com/mgechev/revive

10、go-chart:Go 原生图表库。支持折线图、柱状图、饼图等

代码语言:javascript复制
package main
import (
 "os"
 "github.com/wcharczuk/go-chart/v2"
)

func main() {
 graph := chart.Chart{
  Series: []chart.Series{
   chart.ContinuousSeries{
    XValues: []float64{1.0, 2.0, 3.0, 4.0, 5.0},
    YValues: []float64{1.0, 2.0, 3.0, 4.0, 5.0},
   },
  },
 }
 f, _ := os.Create("output.png")
 defer f.Close()
 graph.Render(chart.PNG, f)
}

地址:https://github.com/wcharczuk/go-chart

11、filestash:在线文件管理工具。在浏览器上管理 FTP、SFTP、Git、S3、MySQL、Dropbox 等服务中的文件和数据,支持编辑文件、图片管理、视频转码、Office 文档、全文搜索等功能

地址:https://github.com/mickael-kerjean/filestash

12、vitess:用于横向扩展 MySQL 数据库的集群系统。基于 Go 语言的并发特性,它能够轻松处理数千个连接。还可以根据配置好的规则,自动优化影响数据库性能的查询,运维方面支持自动处理主故障转移和备份等功能

地址:https://github.com/vitessio/vitess

Java 项目

13、thingsboard:完全开源的物联网 IoT 平台。它使用行业的标准物联网协议 MQTT、CoAP 和 HTTP 连接设备,支持数据收集、处理、可视化和设备管理等功能。通过该项目可快速实现物联网平台搭建,从而成为众多大型企业的首选,行业覆盖电信、智慧城市、环境监测等

地址:https://github.com/thingsboard/thingsboard

14、from-java-to-kotlin:展示 Java 和 Kotlin 语法上差别的项目。让有 Java 基础的程序员可以快速上手 Kotlin

地址:https://github.com/MindorksOpenSource/from-java-to-kotlin

15、graal:Oracle 开源的高性能跨语言虚拟机。用它启动的程序占用内存更低、启动时间更短,而且支持运行多种编程语言,比如 Python、Ruby、C/C 、Java 等。通过 Polyglot API 更是打破了不同语言之间的壁垒,实现多语言混合编程。目前部分功能还处于实验阶段,生产环境慎用

代码语言:javascript复制
import org.graalvm.polyglot.*;

class Polyglot {
    public static void main(String[] args) {
        Context context = Context.newBuilder().allowIO(true).build();
        Value array = context.eval("python", "[1,2,42,4]");
        int result = array.getArrayElement(2).asInt();
        System.out.println(result);
    }
}

/**
 * 运行结果
 * 执行:javac Polyglot.java
 * 输出:42
 */

地址:https://github.com/oracle/graal

16、glide:流畅快速的 Android 图片加载库。为了实现快速加载和展示图像,Glide 会自动缩减像素采样、缓存、积极重用减少垃圾回收。使用上一行代码就可以实现图片加载和展示,同时网络请求部分可灵活接入任何库

代码语言:javascript复制
Glide.with(fragment).load(url).into(imageView);

地址:https://github.com/bumptech/glide

17、jjwt:适用于 Java 和 Android 的 JWT(JSON Web Token)库

代码语言:javascript复制
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.security.Keys;
import java.security.Key;

Key key = Keys.secretKeyFor(SignatureAlgorithm.HS256);
String jws = Jwts.builder().setSubject("HelloGitHub").signWith(key).compact();
// 得到 JWS 字符串

地址:https://github.com/jwtk/jjwt

JavaScript 项目

18、handle:汉字版 Wordle 游戏

地址:https://github.com/antfu/handle

19、noclip:电子游戏关卡的数字博物馆。该项目包含了很多游戏的场景模型,可在线自由浏览

地址:https://github.com/magcius/noclip.website

20、ts-node:可直接在 Node.js 上执行 TypeScript 代码的库。通过 JIT 方式将 TypeScript 代码转换成 JavaScript,实现不需要预编译即可在 Node.js 上运行 TypeScript 代码

地址:https://github.com/TypeStrong/ts-node

21、summernote:基于 jQuery 的编辑器库。可用来创建所见即所得(WYSIWYG)编辑器,支持 Bootstrap 3、4 和 5

地址:https://github.com/summernote/summernote

22、yn:面向程序员的本地 Markdown 笔记工具。一款适合程序员的笔记工具,拥有和其它工具不一样的体验

  • 技术笔记:可直接在文档中运行代码块(默认支持 JS 代码,其它语言需配置)
  • 制作辅助工具:可在文档中嵌入 HTML 组件来制作辅助工具
  • 画图和图表:支持嵌入多种图形、思维导图、Plantunl、Drawio、Mermaid 、ECharts
  • 工作日报:支持任务代办列表,使用“宏替换”功能可以方便地生成日报周报

地址:https://github.com/purocean/yn

Kotlin 项目

23、RocketXPlugin:加速 Android APK 编译的插件。它会自动识别未改动模块并在编译流程中替换为 AAR,最后只编译改动过的模块,从而实现加速的效果

代码语言:javascript复制
// app module 的 build.gradle 加入
apply plugin: 'com.rocketx'

// 在根目录的 build.gradle 加入
buildscript {
    dependencies {
        classpath 'io.github.trycatchx:rocketx:1.0.17'
    }
}
依赖 AS 插件 android studio setting->plugins-> marketplace 搜索 RocketX 安装

地址:https://github.com/trycatchx/RocketXPlugin

PHP 项目

24、codefever:由蒲公英团队开源的代码托管平台。界面清爽后端采用 PHP 编写,支持 Docker 一键部署

  • ❤️ 完整开源:毫无保留的完整开源,无任何编译或加密代码
  • ⌨️ 代码对比:支持提交代码的不同版本支持高亮显示对比
  • 0 人点赞