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

简介

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

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

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


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

C 项目

1、lvgl:美观易用的轻量级嵌入式系统图形库

  • 拥有丰富的图形组件:按键、图表、图片等
  • 支持多种输入设备:触摸屏、键盘、按键等
  • 最低资源占用:64 kB ROM、16 kB RAM
  • 不依赖特定的硬件平台,可在多种显示屏上运行
  • 支持多语种:中文、韩文、阿拉伯文等
  • 丰富详细的示例

2、uthash:为 C 语言提供哈希表的库。由于 C 语言中没有类似字典的数据结构,该库提供了哈希表常见的查询、插入、删除、排序等函数。使用方法简单,仅需引入一个头文件

#include "uthash.h"

struct my_struct {
int id; /* we'll use this field as the key */
char name[10];
UT_hash_handle hh; /* makes this structure hashable */
}; struct my_struct *users = NULL; void add_user(struct my_struct *s) {
HASH_ADD_INT( users, id, s );
}

3、warpd:用键盘代替鼠标的工具。拥有多种操作模式比如方向键移动鼠标和区域选择,但仅支持 Linux 和 macOS 系统

C# 项目

4、TradingSystem:开源的交易管理系统。包含了服务器端、PC 客户端、手机客户端的源码,支持中文界面、交易管理、打印小票、会员管理、统计报表等功能,适用于餐厅、超市、酒店等领域。使用和二次开发前请认真阅读开源协议

C++ 项目

5、Cytopia:免费开源的像素风模拟城市建设游戏

6、FileCentipede:一个用 C++ 和 Qt 编写的跨平台文件下载器。它界面简洁、下载速度快、支持多协议,还有浏览器插件可用来下载网页中的视频和音频

7、ydb:Yandex 开源的企业级分布式 SQL 数据库。具有高可用、易扩展、事务、强一致性、灾后自动恢复等特点,提供 Web 平台方便查询以及 Go、Java、Python、JavaScript 等多种编程语言 SDK

CSS 项目

8、simple.css:超轻量级的 CSS 框架。不引入新的样式类,仅把 HTML 元素设为合理值,从而实现仅用 HTML 元素就可以构建美观、响应式的网页

Go 项目

9、monitoror:平铺的监控工具。安装简单配置方便的“监控墙”,所有监控指标以平铺的方式展示,美观且一目了然。支持 Linux、macOS 和 Windows 主流操作系统

10、yomo:低延时流式边缘计算框架。它基于 QUIC(快速 UDP 互联网连接)协议实现,有效地提高了数据传输率和稳定性,实现在复杂网络环境下数据依然可以超低时延传输和处理。原生支持多地域分布式的部署模式,使得终端用户可就近访问节点,保证数据传输的低延时。适用于开发实时交互的应用,比如在线协作 SaaS、元宇宙、AR/VR、云游戏、物联网 IoT 等

11、gorse:由 Go 语言实现的推荐系统引擎。无需具备推荐系统相关知识,就能轻而易举地搭建推荐系统。开发者只需将用户信息、物料信息和互动数据(例如点赞、收藏等)导入系统,Gorse 就会自动训练模型为每个用户生成推荐

12、lal:纯 Go 开发的流媒体服务器。完备的直播服务器,支持多种常见编码格式和 RTMP、RTSP、HLS 等协议

13、casdoor:提供登陆界面的身份访问管理平台。提供中文界面的用户管理后台,支持多种第三方登录、单点登录以及手机/邮箱验证码、找回密码等功能

Java 项目

14、javamelody:监控 Java、Java Web 应用程序的工具。监控包含 HTTP 请求、SQL 耗时、方法执行次数、错误百分比、Java 内存等指标,支持自定义时间维度和导出报告

15、guice:轻量级 Java 依赖注入框架。不需要大量的模版代码,即可编写依赖注入的代码。使开发和调试更容易、更快速,适合个人开发者在小项目中使用

import javax.inject.Inject;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module; public class Main {
@Inject
private HelloWorldService service;//hello service public static void main(String[] args) {
Main main = new Main();
Module module = new HelloWorldModule();
Injector injector = Guice.createInjector(module);
injector.injectMembers(main);//injects the implementation of the service main.testGuice();
} public void testGuice()
{
service.sayHello();//usage of the service
}
}

16、databasir:一款数据库模型文档管理平台。支持自动同步数据库元数据并生成文档,解决数据模型文档管理中的内容更新不及时等问题

17、streamx:Flink/Spark 极速开发框架,一站式流数据处理平台。提供开箱即用的流式大数据开发体验,可在平台上统一管理配置、开发、测试、部署、监控、运维的整个过程

18、stendhal:一款免费、开源的多人在线冒险(MMORPG)游戏。项目采用 Java 语言编写,虽然游戏画面复古还是 2D 但拥有数百种物品、怪物、NPC、任务和自由交易组成的丰富世界。玩家可以通过完成任务得到经验和金钱,更新装备逐渐变强探索更多新的地图。该游戏从 2005 年开源持续维护至今,在线试玩

JavaScript 项目

19、nanoid:用于生成随机 ID 的 JS 库

  • 小巧:无依赖,仅 130 字节
  • 快速:比 UUID 快 60%
  • 安全:加密的强随机 API,可在集群中使用
  • 紧凑:它使用比 UUID 更大的字母表
  • 易用:已移植到 20 多种编程语言
const { nanoid } = require('nanoid');
nanoid(); //=> "U9HDHNW3BkWMEd6GV_QPa"

20、rubiks-cube:使用 Three.js 制作的 3D 魔方。支持自定义魔方阶数,在线尝试

21、nexe:可将 Node.js 应用程序,打包成一个可执行文件的命令行工具

22、cnchar:小巧的汉字处理 JS 库。支持简体字拼音、多音字、笔画数等功能

let spell = cnchar.spell('你好');
let stroke = cnchar.stroke('你好');
console.log(spell, stroke);

23、rough:手绘风格的图形库。可以让你用素描、类似手绘的风格来绘制图形

const rc = rough.canvas(document.getElementById('canvas'));
rc.rectangle(10, 10, 200, 200); // x, y, width, height

Kotlin 项目

24、architecture-samples:Android 架构蓝图。该项目是官方给出的 Android 应用设计建议,展示并讨论了如何设计 Android 应用架构,以及保证项目的可测试和可维护性。还有一个简单的 to-do 应用作为示例,方便开发人员和初学者学习和理解

Objective-C 项目

25、hammerspoon:强大的 macOS 自动化工具。通过该项目可以方便地用 Lua 脚本与 macOS 系统 API 进行交互,实现操作窗口、鼠标、文件系统、屏幕等功能。可用于打造各种 macOS 便捷工具

hs.hotkey.bind({"cmd", "alt", "ctrl"}, "W", function()
hs.notify.new({title="Hammerspoon", informativeText="Hello World"}):send()
end)

Python 项目

26、pikepdf:用于读取和写入 PDF 文件的 Python 库

import pikepdf

with pikepdf.open('input.pdf') as pdf:
num_pages = len(pdf.pages)
del pdf.pages[-1]
pdf.save('output.pdf')

27、docker-py:用 Python 操作 Docker 的库。Docker 官方出品的 Python 库,可以用来批量、自动管理镜像

import docker
client = docker.from_env()
client.images.pull('nginx')
# <Image 'nginx'>
client.containers.run("ubuntu:latest", "echo hello world")
# 'hello world\n'
client.containers.list()
# [<Container '45e6d2de7c54'>, <Container 'db18e4f20eaa'>, ...]

28、memray:Python 的内存分析器。帮你分析 Python 应用的内存使用情况,找到内存泄漏的原因、占用内存多的代码、内存使用率高的原因。支持生成内存报告(火焰图、表格、树状图)和实时报告等模式,以及统计结果等功能

  • 表格报告:memray table [options]
  • 实时报告:memray run --live application.py
  • 统计结果:memray stats [options]

29、pinry:分享图片的开源网站。该项目前后端分离采用 Vue.js + Django 等技术栈,网站以平铺的方式展示图片,支持浏览、上传和搜索图片以及管理后台、个人页、增加标签等功能

30、modin:更快、类似 pandas 的数据处理和分析库。底层通过 Ray 或 Dask 加速计算,上层兼容大部分 pandas API。所以使用起来十分简单,仅需更改一行代码即可从 pandas 无缝切换到 Modin,同时获得更快的数据处理速度

# import pandas as pd
import modin.pandas as pd
import numpy as np frame_data = np.random.randint(0, 100, size=(2**10, 2**8))
df = pd.DataFrame(frame_data)

Ruby 项目

31、lobsters:lobste.rs 网站的源码。采用 Rails 开发的网站,类似 Hacker News 以分享链接和讨论为核心。可用来二次开发类似的网站

Rust 项目

32、gitv:由 Rust 编写的 Git 仓库分析和数据可视化的命令行工具

33、dnsguide:用 Rust 从头写一个 DNS 服务的教程

Swift 项目

34、WordPress-iOS:官方开源的 WordPress iOS 客户端

其它

35、iRedMail:开箱即用的免费邮件服务器。通过该项目可以快速在 Linux/BSD 上部署邮件服务,除此之外还拥有 Web 管理平台,数据均存储在服务器上,即保证了数据隐私还易于迁移和备份

36、WechatMomentScreenshot:朋友圈截图生成工具

37、RedisInsight:官方开源的 Redis 桌面管理工具。提供了可视化操作界面、监控、内存分析、管理 Redis 集群等功能

38、getwidget:免费开源的 Flutter UI 库。包含 1000 多种常用组件,帮你快速、轻松地构建 Flutter 应用

39、SmartIDE:快速搭建云开发环境的工具。不需要手动安装任何工具、SDK、编辑器和设置环境变量等繁琐操作,一条命令即可获得所需的开发环境和 IDE,轻松实现云端开发

40、vcard-personal-portfolio:用来展示个人信息的网站

开源书籍

41、awk:《AWK 程序设计语言》中文翻译

42、tensorflow-internals:《TensorFlow 内核剖析》通过剖析 TF 源码的方式,介绍它的架构、领域模型、工作原理等知识。虽然讲解的 1.2 版本已经过时,但仍然可以用来了解知名机器学习框架的内部原理

43、rCore-Tutorial-Book-v3:用 Rust 语言从零开始写一个基于 RISC-V 架构的类 Unix 内核。清华大学开源的中文教程,从计算机发展历史开始科普,一步步说到为何操作系统会诞生,以及现代操作系统必须具备的特性。实践方面也是从空文件夹开始,像搭乐高积木一样,慢慢将操作系统的核心开发出来,教程读起来简直像看小说一样让人欲罢不能。在线阅读

机器学习

44、instant-ngp:加速训练 NeRF 模型的项目。英伟达开源的最快只需 5 秒,训练出一只狐狸 NeRF 模型的技术。即根据静态的 2D 图片通过神经网络建模,快速训练出可以放大且从任何角度观察都清晰的图片

最后

如果你发现了 GitHub 上有趣的项目,就点击分享给大家伙吧。

以上就是本期的所有内容了,往期内容点击阅读

感谢您的阅读,如果觉得本期内容还不错的话 求赞、求分享, 您的鼓励是 HelloGitHub 前进的动力!️

《HelloGitHub》第 73 期的更多相关文章

  1. 「NGK每日快讯」2021.1.15日NGK公链第73期官方快讯!

  2. 《HelloGitHub月刊》第01期

    <HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...

  3. 《HelloGitHub月刊》第 01 期

    <HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...

  4. 家里蹲大学数学杂志 Charleton University Mathematics Journal 官方目录[共七卷493期,6055页]

    家里蹲大学数学杂志[官方网站]从由赣南师范大学张祖锦老师于2010年创刊;每年一卷, 自己有空则出版, 没空则搁置, 所以一卷有多期.本杂志至2016年12月31日共7卷493期, 6055页.既然做 ...

  5. HelloGithub

    <HelloGithub月刊>第一期   <HelloGithub月刊> 因为现在这个项目只有我自己做,只敢叫“月刊”,希望有志同道合者,快点加入到这个项目中来!同时,如果您有 ...

  6. 在 GitHub 学习,成长为自己想要的样子|HelloGitHub 访谈

    万事开头难,我们经过长期的策划和筹备,终于推出了 HelloGitHub 采访系列「开源项目作者的访谈」.这是一个采访个人开源项目作者的栏目,内容侧重于开源项目作者与开源的故事. 我们深知想要做好一个 ...

  7. 科技爱好者周刊(第 176 期):中国法院承认 GPL 吗?

    这里记录每周值得分享的科技内容,周五发布. 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容. 周刊讨论区的帖子<谁在招人?>,提供大量程 ...

  8. 软件开发的podcast

    目录 中文 喜马拉雅 https://www.ximalaya.com/ SingularFM 8个开发者值得一听的英文 Podcast https://zhuanlan.zhihu.com/p/24 ...

  9. GitHub 热点速览 Vol.17:在?各家视频会员要不要?

    作者:HelloGitHub-小鱼干 摘要:经济实用,用作上周的 GitHub 热点的横批再合适不过.先不说 GitHub Trending 上不止一个的会员共享项目,免你找好友刷脸要会员,这项目实在 ...

随机推荐

  1. kafka 学习(二--前言)

    kafka 现在在企业应用和互联网项目中的应用越来越多了,本篇文章就从 kafka 的基础开始带你一展 kafka 的宏图 1. 什么是 Kafka Kafka 是一个分布式流式平台,它有三个关键能力 ...

  2. java并发lock锁详解和使用

    一.synchronized的缺陷 synchronized是java中的一个关键字,也就是说是Java语言内置的特性.那么为什么会出现Lock呢? 在上面一篇文章中,我们了解到如果一个代码块被syn ...

  3. Spring 和 SpringBoot 有什么不同?

    Spring 框架提供多种特性使得 web 应用开发变得更简便,包括依赖注入.数据绑定.切面编程.数据存取等等. 随着时间推移,Spring 生态变得越来越复杂了,并且应用程序所必须的配置文件也令人觉 ...

  4. BLOB 和 TEXT 有什么区别?

    BLOB 是一个二进制对象,可以容纳可变数量的数据.TEXT 是一个不区分大小写 的 BLOB. BLOB 和 TEXT 类型之间的唯一区别在于对 BLOB 值进行排序和比较时区分大小 写,对 TEX ...

  5. piwik安装部署

    1.piwik介绍 Piwik是一个PHP和MySQL的开放源代码的Web统计软件,它给你一些关于你的网站的实用统计报告,比如网页浏览人数,访问最多的页面,搜索引擎关键词等等. Piwik拥有众多不同 ...

  6. 007.iSCSI服务器CHAP双向认证配置

    一 iSCSI和CHAP介绍 1.1 iSCSI 磁盘 iSCSI后端存储支持多种设备类型,主要有: 文件 单一分区(partition) 磁盘 数组 RAID LVM 本手册建议以裸磁盘vdb作为示 ...

  7. 一个抽取百度定位的教程(下载百度地图Demo+配置+抽取)

    效果展示 已经下载Demo的可以直接到第五步,已经配置好的并可以运行的可以直接到第七步. 1.在浏览器搜索 " 百度定位API ",点击下面这个链接 2.翻到最下面找到并点击 &q ...

  8. getHibernateTemplate出现的所有find方法的总结

    文章转自:http://www.cnblogs.com/DarrenChan/p/5528194.html 一.find(String queryString); 示例:this.getHiberna ...

  9. 虚拟机上 安装 CentoOS 7.5 1804 过程记录

    1.准备安装镜像 在开始安装CentOS之前,必须下载安装ISO映像.镜像可从CentOS网站https://www.centos.org/download/.提供以下基本类型的镜像: DVD ISO ...

  10. GitHub Pages + Hexo搭建个人博客网站-github风格-采坑记录

    目录 1.本机安装nodejs 2.github上创建仓库 3.安装hexo 4.hexo主题 5.配置主题 6.添加文章 7.使用分类和标签 8.增加文章目录 9.推送github 使用github ...