整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

程序员的开源月刊《HelloGitHub》第 68 期

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

简介

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

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


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

C 项目

1、toybox:该项目将 200 多个常用的 Linux 命令行工具,做成一个可执行文件。从而可以让 Android 这种原本不支持 Linux 命令的系统,也得以用上 ls、find、ps 等命令。还可以用于快速构建最小的 Linux 环境

2、the_silver_searcher:比 ack 更快的命令行搜索工具。速度快、功能强大、使用简单,支持 Linux、Windows、macOS 操作系统,还能够整合进 Vim 和 Emacs 等编辑器

ack test_blah ~/code(8G)/  104.66s user 4.82s system 99% cpu 1:50.03 total
ag test_blah ~/code(8G)/  4.67s user 4.58s system 286% cpu 3.227 total

3、WindTerm:支持 SSH/Telnet/Serial/Shell/Sftp 的终端工具。虽然该软件完全免费,但部分代码尚未完全开源,对安全敏感的同学可以再观望下

C# 项目

4、wavefunctioncollapse:基于波函数坍缩 (WFC) 算法,实现的无限城市示例。城市里有房子、楼梯、树木、连接房屋的通道,你可以在城市中自由移动、跳跃、飞行,但不论你怎么移动都找不到尽头,因为这座城市会无限延伸

5、NETworkManager:管理和解决网络问题的工具。它集成了 IP 和端口扫描、WiFi 分析器、跟踪路由、DNS 查询等工具

C++ 项目

6、ppsspp:能够运行在 Android 和 PC 上的开源 PSP 模拟器

7、leocad:用来创建虚拟乐高模型的 CAD 工具。适用于 Windows、Linux 和 macOS 系统

CSS 项目

8、csshake:用 CSS 实现抖动效果

Go 项目

9、MangoDB:真正开源的 MongoDB 替代品。它底层采用 PostgreSQL 作为存储引擎,用 Go 语言实现了 MongoDB 协议,所以几乎兼容所有的 MongoDB 库,迁移起来毫无负担。如果你用不到 MongoDB 的高级功能,还受限于它的开源协议,那么这个项目可作为 MongoDB 的开源替代方案。它才刚刚起步,建议观望一段时间或做足测试再用于生产环境

10、caddy:用 Go 编写的轻量级 Web 服务器。它相较于 Apache、Nginx 这些知名 Web 服务器,独特点在于提供了编译好的可执行文件,实现了真正的开箱即用。无需任何配置即可拥有免费的 HTTPS、自动把 Markdown 文件转化成 HTML 等人性化的功能。如果是搭建中小型的 Web 服务,它完全够用而且省时省心

11、croc:可以让任意两台计算机,安全方便地传输文件和文件夹的工具。轻松实现端到端加密的跨平台文件传输,还支持多文件传输、传输中断和恢复等功能

Java 项目

12、jnativehook:获取键盘和鼠标事件的 Java 库。轻松监听按键、鼠标移动、点击等事件

import GlobalScreen;
import NativeHookException;
import NativeMouseWheelEvent;
import NativeMouseWheelListener;
// 鼠标移动
public class GlobalMouseWheelListenerExample implements NativeMouseWheelListener {
 public void nativeMouseWheelMoved(NativeMouseWheelEvent e) {
  System.out.println("Mosue Wheel Moved: " + e.getWheelRotation());
 }

 public static void main(String[] args) {
  try {
   GlobalScreen.registerNativeHook();
  }
  catch (NativeHookException ex) {
   System.err.println("There was a problem registering the native hook.");
   System.err.println(ex.getMessage());
   ex.printStackTrace();

   System.exit(1);
  }

  GlobalScreen.addNativeMouseWheelListener(new GlobalMouseWheelListenerExample());
 }
}

13、spider-flow:用流程图的方式编写爬虫的平台。无需写代码就可以快速完成一个简单的爬虫

14、greenDAO:高性能的 Android ORM 库。拥有体积小、易于使用、支持数据库加密等特点,通过它 Android 开发者可以采用面向对象的方式操作数据库,不需要再手写和拼接 SQL 啦

JavaScript 项目

15、vue-color-avatar:纯前端实现的矢量风格头像生成网站。可以通过搭配不同的素材,生成个性化头像。该项目使用 Vite + Vue3 开发,能够帮助前端初学者熟悉 Vue3 语法并掌握项目搭建的相关知识

16、colorfu:自动生成由文字/颜色/图片/纹理元素组成的壁纸

17、pm2:Node.js 的进程管理工具。它容易上手操作简单,可以有效地提高 Node.js 程序运行的稳定性,支持自动重启、负载均衡、不停服务重启、性能监控等功能,多用于生产环境中管理、监控 Node.js 进程

18、automa:通过图形化界面拖拽功能模块,实现浏览器自动操作的扩展工具。轻松实现自动填表、截图、定时执行等操作。让浏览器自动完成预设工作流的插件,从而减少重复性操作提高效率

Python 项目

19、PyWebIO:快速构建 Web 应用的 Python 工具。通过该项目你可在不写 HTML、CSS、JS 代码的前提下,仅用 Python 快速完成一个包含数据展示、表单的小型 Web 应用页面

20、pottery:以 Python 的方式操作 Redis 的库。忘记那些 Redis 命令吧,只要你知道如何使用 Python 字典,那么你就会用这个库操作 Redis

>>> from pottery import RedisList
>>> tel = RedisDict({'jack': 4098, 'sape': 4139}, redis=redis, key='tel')
>>> tel['guido'] = 4127
>>> tel
RedisDict{'jack': 4098, 'sape': 4139, 'guido': 4127}
>>> tel['jack']
4098
>>> squares = RedisList([1, 4, 9, 16, 25], redis=redis, key='squares')
>>> squares
RedisList[1, 4, 9, 16, 25]
>>> squares[0]
1

21、zulip:完全开源的企业级即时通讯项目。后端采用 Python 语言实现性能足够强大,功能齐全相当于开源、免费的 Slack,拥有拖拽上传文件、代码高亮、Markdown 语法、应用整合、容易接入的 API 等功能,还支持 Web、PC、iOS 和 Android 主流平台,众多知名企业都在用,能够有效地提高团队沟通和办公效率。同时该项目对新手用户友好,如果你想加入一个不错的 Python 开源项目,推荐你花时间研究下它一定会有所收获

22、webssh:简单的 SSH 连接服务器的 Python Web 应用。该项目后端采用 Tornado Web 框架和 Python SSH 库 paramiko,前端是 TypeScript 写的命令行前端组件 Xterm.js 实现。整个项目简单还具有实用价值,可作为 Python Web 的实战项目学习

23、django-debug-toolbar:Django 的调试工具栏。可显示当前请求和响应有关的各种调试信息,包括耗时、SQL、配置、性能等信息

1. 安装:pip install django-debug-toolbar
2. TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "APP_DIRS": True,
        # ...
    }
]
3. INSTALLED_APPS = [
    # ...
    "debug_toolbar",
    "django.contrib.staticfiles",
    # ...
]
4. 增加 __debug__ URL
import debug_toolbar
from django.urls import include, path

urlpatterns = [
    # ...
    path('__debug__/', include(debug_toolbar.urls)),
]
5. MIDDLEWARE = [
    # ...
    "debug_toolbar.middleware.DebugToolbarMiddleware",
    # ...
]
6. INTERNAL_IPS = [
    # ...
    "127.0.0.1",
    # ...
]

Rust 项目

24、hyperfine:命令行基准测试工具。可用来查看和对比命令的耗时,支持多次运行的统计分析、结果导出等功能

Swift 项目

25、xcode-dev-cleaner:用于清理各种 Xcode 的缓存数据,释放存储空间。注意是清除 Xcode 缓存数据,不是卸载 Xcode 哈

其它

26、toml:更易读和易于维护的配置文件格式。如果你厌倦了 INI 的局限性、层层嵌套的 JSON 和 YAML 令人心惊胆战的缩进语法,不防给 TOML 一个机会,它支持多种数据类型、抛弃了缩进和嵌套,而且众多流行编程语言都有对应的库。TOML 已经足够成熟,绝对值得一试

27、waka-readme-stats:自动在 GitHub 个人首页展示编程时长的工具。该项目通过 WakaTime 记录用户在 IDE 的使用时间,统计编程时长和数据,然后采用 GitHub Action 自动获取并动态更新到 GitHub 个人首页。轻而易举地展示自己的编程时长

28、PathPlanning:常见的路径规划算法集合。项目包含了 Python 代码实现、运行过程动画以及相关论文

29、howdy:为 Linux 系统提供人脸识别解锁电脑的工具。通过电脑内置的摄像头和红外设备,实现了类似 Windows Hello™ 风格的身份认证,可用于登陆、锁屏、sudo 等任何需要输入密码的地方

30、The-Open-Book:开源的电子水墨屏阅读设备。动手能力强的同学可跟着这个项目,从焊电路板开始亲手制作出一个类 Kindle 的 4.2 英寸阅读设备

31、fl_chart:Flutter 图表库。它支持折线图、条形图、饼图、散点图和雷达图

开源书籍

32、ugo-compiler-book:《从头开发一个迷你 Go 语言》该书教你从头实现迷你 Go 语言,内容包含了词法解析、语法树构建、函数闭包、接口、CGO 的实现等内容

33、archbase:教科书《计算机体系结构基础》第三版

34、spring-in-action-v6-translate:《Spring 实战第 6 版》中文翻译

机器学习

35、best_AI_papers_2021:2021 年必看的人工智能论文列表。该项目不是简单的罗列论文,它不仅包含相关论文的代码、效果展示,还有深入的文章和讲解视频。通过学习这些前沿的人工智能论文,提前了解 AI 在未来更多可能性

36、AnimeGANv2:可以将图片和视频转换成漫画风格的工具。采用的是神经风格迁移+生成对抗网络(GAN)的组合,转换速度快

最后

感谢您的阅读,如果觉得内容还不错的话求赞、求分享,您的每一次支持都将让 HelloGitHub 变得更好!❤️

本文为整理自己的github常用star. 免得到时候找个库都不知道找哪个.

本文包含了nodejs和js.可能还含有一些其他语言的库

详情的可以参考我githubStart

  • ScrollMagic : 视差滚动插件 比较强大 可制定化多

  • jquery.localScroll :jquery 视差滚动插件 参考域上和美

  • serverspeeder : 锐速破解版

  • gm : nodejs图形处理库

  • responsive-nav.js: 同响应式导航栏 但是没SlickNav好用

  • gulp-starter : gulp范例

  • shelljs : nodejs可以执行linux指令

  • fake2db : python测试数据库 压力测试

  • SlickNav : 响应式导航栏插件

  • notie : 屏幕内的通知插件

  • Caporal.js : nodejs快速生成命令行工具

  • Slideout.js : 移动端/pc端侧滑插件

  • node.bcrypt.js : nodejs加密插件

  • cdnjs-importer : 参考cdnjs.com这个库

  • csshake : css3抖动动画

  • countUp.js : 数字加载动画插件

  • bounce.js : js快速创建css3动画

  • dynamics.js : js物理引擎动画库

  • remote_inspect_web_on_real_device 各种真机远程调试方法汇总——“真机远程调试”

  • spy-debugger : 移动端手机调试插件

  • ms :毫秒互换/ 转换成秒/分/时 插件

  • web_js_css_frame : 前端框架合集介绍 --

  • ScrollTrigger : 滚动现实 Inview插件 比如进入某个div div需要做什么现实

  • Clusterize.js : 数据展示插件

  • Clamp.js : 多行文本溢出省略

  • dropload : 移动端上啦刷新 下拉加载插件

  • mobiscroll : 屌炸天的组件库...但是收费 价格忒贵

  • flatpickr : flat风格的日历选择插件,功能性比较强!

  • perfect-scrollbar: 简约但完美的自定义滚动条插件

  • Vconsole: weui的移动端console...某些特殊的环境下会出问题 比如某x付宝

  • iview : vue的组件库..类型与vux

  • weui.js :weui.io组件js库

  • jQuery-Parallax: jquery的鼠标滚动 页面视差滚动

  • jsdom: nodejs jsdom引擎

  • qart.js:前端快速生成二维码

  • cors: cors跨域处理问题

  • gulp-flatten: gulp扁平化组件 取消gulp层级目录 比如dev/js/a/x1.js => /dist/js/x1.js

  • iscroll: iscroll无限滚动库,注意其库只能有一个子组件 比如div>div1 但是不能有 div>div1+div2

  • request-promise:request promise版

  • VueCircleMenu: vue圆形菜单组件

  • ityped: js打字机效果

  • swagger-editor: api文档在线编写工具

  • jquery-weui: 微信ui库 jquery版本 如果同时引入weui,那么需要jquery-weui.css 覆盖weui的样式. 如果使用rem布局(flex)请覆盖jquery-weui的html(font-size) 同时对某些jquery-weui组件进行调整

  • weui: 微信ui库

  • particles.js:前端粒子库

  • normalizr:数据结构扁平化库

  • docsify:写文档用的库

  • conversational-form:像聊天一样填写biaodn

  • csspin:纯css写的loading动画

  • fecha:时间格式化库,跟moment.js一样,但是轻量功能少,用于微信小程序

  • Remodal:模态框弹出库

  • nprogress:页面顶部很细小的loading条

  • multer:nodejs的中间件,用来处理form-data

  • kcptun&&kcptun_gclient:kcptun架构相关库

  • colors.js:nodejs让你的命令行加上特效

  • pinyin:前端/nodejs汉字转拼音

  • json2csv:如名

  • webuploader:前端文件上传库

  • anyproxy:阿里出品的一款代理工具

  • sequelize:ORM查询mysql,关系型数据库,加快开发效率

  • stickUp:类似于fixed,根据滚动多少才fixed,可以用来做导航条

  • plax:视差滚动插件,推荐Parallax.js

  • scrollMonitor:视差滚动插件 滚轮滚动 .不同于plax

  • pm2:nodejs部署管理工具

  • Mock:后台没给数据之前伪造一份数据.加快开发效率

  • nightmare:封装过的PhantomJS.可以用来做浏览器访问

  • node-schedule:nodejs定时器工具

  • colour-schemes:各大IDE,编辑器的样式配置

  • store.js:封装好的前端存储localStorage,global等等

  • cropper:jquery图片裁剪插件

  • echo:图片lazyloading加载 懒加载

  • velocity:js动画库插件.增加了css3动画支持

  • casperjs:前端UI自动化测试框架

  • SVG-Loaders:SVG/css3 loading 加载动画

  • loaders.css:纯css的加载动画 loading

  • SpinKit:优雅高效的加载动画

  • device.js:判断目前访问的浏览器

  • stellar.js:4kstar的视差滚动 滚轮滚动

  • scrollpath:视差滚动,滚轮滚动.

  • WOW:滚动到某个div加载某个动画 依赖animate.css

  • jquery_lazyload:jquery的懒加载

  • scrollreveal:视差滚动,优雅高效

  • zoom.js:前端点击放大功能

  • reveal.js:前端做ppt的工具

  • nodePPT:前端做ppt的工具 国产

  • Parallax.js:最好的视差滚动插件,支持多个div视差滚动,通过!important来控制position不被覆盖

  • skrollr:视差滚动插件..加特效的

  • fastclick:处理移动端点击事件

  • mobileTech:移动端统计

  • purl&&URI.js:处理url查询参数

  • phantomjs&&phantomjs-node:nodejs中的浏览器

  • pageres&pageres-cli:nodejs截图插件

  • cheerio:nodejs dom解析库

  • node-crawler:封装好的爬虫..方便开发而已

  • SQLiScanner:sql注入查询

  • lib-flexible:淘宝flexible解决方案 利用rem

  • vux:vue.js 状态管理插件

  • validate.js:validate.js数据验证插件

  • nvm:nodejs版本管理工具

  • gitignore:git忽略文件库

  • plyr:html5 video库, 已经写好了样式,方便拿来使用

  • normalize.css:格式化浏览器

  • co:异步promise转为同步 yield

  • Waves:谷歌设计风格 点击按钮会有水波纹

  • CaptchaBundle:php验证码

  • css3d-engine:css3d引擎

  • videojs-contrib-hls:videojs中的hls转换

  • anime:js动画库

  • editor.md:前端markdown文本编辑器

  • OwlCarousel:前端滚动插件

  • gfwlist:防火墙list

  • sift.js:mongodb的语法查询json

  • electron-packager:electron打包工具



者:yeyan1996

转发链接:https://juejin.im/post/5c76843af265da2ddd4a6dd0