当前位置 博文首页 > 削微寒:每月一更的《HelloGitHub》第 58 期,来啦!

    削微寒:每月一更的《HelloGitHub》第 58 期,来啦!

    作者:削微寒 时间:2021-01-30 15:38

    HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。欢迎大家:

    • 贡献代码
    • 宣传你觉得优秀的项目
    • Star 项目??

    本月刊是每月 28 号更新,再见月刊就是年后了。在这里提前祝大家:新年快乐!

    下面便是第 58 期的内容啦,希望大家喜欢


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

    C# 项目

    1、EverythingToolbar:把搜索和启动应用等功能整合到 Windows taskbar 的工具。效果如下图:

    C++ 项目

    2、ChordNova:一款开源免费的和弦生成工具。我不懂乐理,但单从这个软件的界面就感受到了专业,因为有很多乐理的名词??

    Go 项目

    3、containers-the-hard-way:用 Go 实现迷你 Docker,包含 dokcer 核心功能的开源项目。该项目仅用 Linux 系统接口实现了类似容器的功能,这些能够帮助你更好地了解容器的工作方式。如果你想更深入地理解容器,就参考本项目写一个迷你 Docker 吧

    4、vegeta:基于 Go 语言的 HTTP 压测工具。目前市面上的压测工具已经很多了,但是今天推荐的这款惊艳到我点是下面这条命令执行后的效果(vegeta+jaggr+jplot),让我们一起来感受下吧

    echo 'GET http://localhost:8080' | \
        vegeta attack -rate 5000 -duration 10m | vegeta encode | \
        jaggr @count=rps \
              hist\[100,200,300,400,500\]:code \
              p25,p50,p95:latency \
              sum:bytes_in \
              sum:bytes_out | \
        jplot rps+code.hist.100+code.hist.200+code.hist.300+code.hist.400+code.hist.500 \
              latency.p95+latency.p50+latency.p25 \
              bytes_in.sum+bytes_out.sum
    

    5、delve:一款 Go 语言的调试工具。如果你还在像我一样用 fmt.Println 调试 go 的代码,就试试这个工具吧。万星的开源项目可不是开玩笑的,它上手简单并且支持多种方式调用,助你快速找到 Bug

    6、rqlite:用 Go 实现的基于 SQLite 轻量级、分布式关系数据库。如果你对分布式数据库的原理及实现感兴趣的话,这个项目真的是你入门这方面的不二之选,这个项目用 SQLite 作为存储引擎,让你可以把更多的精力放在理解分布式的知识上,尝试阅读下这个项目的文档,相信你会对它感兴趣的。设计图如下:

    Java 项目

    7、JustAuth:帮你搞定第三方登陆的 Java 开源组件。使用简单、接入方便,帮你随心所欲地接入第三方登陆,让登陆变得简单。目前已经支持十多个平台,还在持续扩充中

    8、java-design-patterns:设计模式 Java 的最佳实践,出自开源社区大佬们之手。做为有梦想和追求的 Java 程序员,当然需要会一些设计模式啦。这个项目虽然是英文的但是先看代码和图,尝试理解含义那么英文描述也就能猜的八九不离十了。不要让英语作为你不努力的借口,努力变强吧!在线阅读

    9、apollo:携程开源的分布式配置中心。开箱即用理念发挥到极致,比如:服务器部分基于 Spring Boot 和 Spring Cloud 开发,运行方便无需额外的 Tomcat 应用容器。并且具备配置修改后即时生效、规范的权限、流程治理等特性,适用于微服务配置管理场景

    10、Logi-KafkaManager:功能强大的 Kafka 集群监控和运维管理平台。强大到我一度以为它是付费的,如果你的公司用 Kafka 的话,可以试试主导把这个项目在公司内部用起来,那你离升职和加薪就不远了

    11、Anki-Android:高效学习神器 Anki 安卓客户端。Anki 是一个帮助学习的记忆卡片软件,卡片正面是问题背面是答案,然后根据记忆公式帮你复习和记牢。下载地址 如果下载后不会用的话,本文点赞过 100 我出一份小白教程给大家上手这个神器

    JavaScript 项目

    12、cloudbase-framework:腾讯开源的云原生一体化部署工具。一键将项目部署上云,不限制框架和语言

    13、newbee-mall-vue3-app:基于 Vue 3.0 技术栈的电商网站前端开源项目。它麻雀虽小五脏俱全,包含模块:首页、类型分类、搜索、地址管理、登录注册等等,该有的基本上都有涉及到。对新手友好,在熟悉 Vue 3.x 的朋友也可以来看看

    14、X6:AntV 旗下的图编辑引擎。提供了开箱即用的交互组件和简单易用的节点定制能力,从而能够快速完成流程图、DAG 图、ER 图等图应用。示例代码:

    import { Graph } from '@antv/x6';
    
    const graph = new Graph({
      container: document.getElementById('container'),
      width: 800,
      height: 600,
      background: {
        color: '#fffbe6', // 设置画布背景颜色
      },
      grid: {
        size: 10,      // 网格大小 10px
        visible: true, // 渲染网格背景
      },
    });
    

    15、hearthstone-battlegrounds-tools:暴雪炉石传说游戏的记牌插件。不懂编程的小伙伴拿去用就好了,支持 Windows 和 macOS 系统。开发者的话,这是一整套完整的 Electronjs 开发流程,从多个渲染进程的管理、不同平台的差异化处理、版本的控制与发布等方面都做了细致的封装,学起来吧。功能上她还具有以下特性:

    • ?? 当天战绩统计,历史战绩查询
    • ?? 统计你所使用过的英雄,自动计算每个英雄的平均排名、选择率
    • ?? 选择英雄时展示可选英雄的大数据选择率、平均排名等
    • ?? 对局信息记录,记录对局过的对手阵容
    • ?? 一键拔线(可怕)
    • 等等

    16、Multiavatar:生成人物头像的 JS 库。支持随机生成一个好看、独特、多文化的头像

    PHP 项目

    17、mochat:一套开源的企业微信开发框架和管理系统。基于 PHP 开发的前后端分离、功能强大的企业微信管理平台

    18、easy-sms:短信发送 PHP 组件。特点:

    • 支持目前市面多家服务商
    • 一套写法兼容所有平台
    • 简单配置即可灵活增减服务商
    • 内置多种服务商轮询策略、支持自定义轮询策略
    • 等等
    use Overtrue\EasySms\EasySms;
    
    $config = [
        // HTTP 请求的超时时间(秒)
        'timeout' => 5.0,
    
        // 默认发送配置
        'default' => [
            // 网关调用策略,默认:顺序调用
            'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,
    
            // 默认可用的发送网关
            'gateways' => [
                'yunpian', 'aliyun',
            ],
        ],
        // 可用的网关配置
        'gateways' => [
            'errorlog' => [
                'file' => '/tmp/easy-sms.log',
            ],
            'yunpian' => [
                'api_key' => '824f0ff2f71cab52936axxxxxxxxxx',
            ],
            'aliyun' => [
                'access_key_id' => '',
                'access_key_secret' => '',
                'sign_name' => '',
            ],
            //...
        ],
    ];
    
    $easySms = new EasySms($config);
    
    $easySms->send(13188888888, [
        'content'  => '您的验证码为: 6379',
        'template' => 'SMS_001',
        'data' => [
            'code' => 6379
        ],
    ]);
    

    Python 项目

    19、Zappa:Python 无服务框架,功能即服务(serverless)。你知道 serverless 是什么吗?不懂的老铁扣 1 ?? 我摊牌了我不懂这个玩意儿。直到我看到了 Zappa 这个项目,然后我的脑海里就几个字:甩手掌柜。用它开发完功能,几个命令打包上传到云服务平台,然后就不用管啦!不仅程序员喜欢它,老板也喜欢因为能够降低服务器成本(省钱)。来感受下“知识”的力量吧

    20、streamlit:能够快速地把数据制作成可视化、交互页面的 Python 框架。分分钟让你的数据变成图表,并且该项目提供免费的共享服务平台帮你的项目上线,方便数据的共享和讨论

    21、lastversion:帮你找到库或者软件最新版本的 Python 工具。它可以避开不同项目作者使用的不同风格的版本号,获取一个项目的最新版本号,下载或安装它们。本项目可用于 build system,比如自动更新脚本。支持从这些网站搜索:GitHub、GitLab、PyPI 等,确保版本最新和稳定

    # 获取最新的 Linux 版本号和最新的 Wordpress 版本号
    lastversion linux
    # 作者的版本标签:v5.10
    # 本项目提供的版本标签:5.10
    lastversion wordpress
    # 作者的版本标签:5.6
    # 本项目提供的版本标签:5.6
    

    22、xonsh:支持 Python 赋能的 shell。如果你不会编写 shell 脚本,但是会 Python。那通过这个项目可以让你混用 shell 命令和 Python 语法,高效快速地完成你想要的功能

    Ruby 项目

    23、spree:基于 Ruby on Rails 实现的大而全的电子商城开源项目。功能齐全项目结构清晰:

    • spree_api:REST API 接口
    • spree_frontend:移动优先,可自定义的店面
    • spree_backend:功能丰富的管理面板
    • spree_cmd:开发人员的命令行工具
    • spree_core:数据层、服务和邮件、基本组件

    Swift 项目

    24、mas:Mac App Store 命令行版

    25、Moya:基于 Alamofire 的轻量级 Swift 网络层框架。它提供了网络抽象层,使用起来足够简单,能够方便地与 RXSwift、PromiseKit、ObjectMapper 结合,轻松地应对常见的开发任务。同时也非常全面,应对复杂任务也同样容易。最后 Moya 有一个很棒的社区,贡献者们提供了很多实用的扩展

    provider = MoyaProvider<GitHub>()
    provider.request(.zen) { result in
        switch result {
        case let .success(moyaResponse):
            let data = moyaResponse.data
            let statusCode = moyaResponse.statusCode
            // do something with the response data or statusCode
        case let .failure(error):
            // this means there was a network failure - either the request
            // wasn't sent (connectivity), or no response was received (server
            // timed out).  If the server responds with a 4xx or 5xx error, that
            // will be sent as a ".success"-ful response.
        }
    }
    

    26、MTMR:自定义 TouchBar 的应用。你问我体验如何?我没钱买带 TouchBar 的电脑啊,你装上我看看就行了

    其它

    27、game-programmer:游戏程序员的学习路径图。一位游戏开发大神开源的项目,希望能够帮助向往游戏开发的你 or 你的孩子,走上游戏开发这条“不归路”。中文

    28、theia:Eclipse 开源的 IDE 工具。我岁数大了,用惯了一个 IDE 就不想换了,喜欢尝鲜的小伙伴可以去把玩一下。看介绍像是一个拥抱开源,与 VS Code 功能相近的开发工具

    29、luarocks:Lua 包管理工具。支持三大平台,安装和使用如下:

    $ wget https://luarocks.org/releases/luarocks-3.5.0.tar.gz
    $ tar zxpf luarocks-3.5.0.tar.gz
    $ cd luarocks-3.5.0
    $ ./configure && make && sudo make install
    $ sudo luarocks install luasocket
    $ lua
    Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio
    > require "socket"
    

    30、Ad-papers:计算广告相关论文、学习资料和业界分享集合

    31、awesome-seo:有关 Google SEO 和流量变现资料的项目。该项目是作者学习 SEO 过程中整理的权威资料,推荐给有个人网站的小伙伴们

    32、makeaplan_public:使用 Flutter 和 Go 开发的「制定计划 APP」。帮助用户记录和追踪自己的计划,辅助用户完成自己的目标。手机端用的是 Flutter 后端用 Go 实现,服务器和客户端通过 ProtoBuffer+grpc 进行通信。可作为学习 Flutter 和 Go 的实战项目

    33、free-font:免费可商用的字体集合。这个项目收录的都是免费可商用的字体,并且仔细地标记出了商用时是否需要获取授权等细节

    开源书籍

    34、DeepLearning-500-questions:《深度学习 500 问》AI 工程师面试知识点的书籍。内容涵盖深度学习的知识点及各大公司常见的笔试题

    机器学习

    35、nanodet:移动端的轻量级 Anchor-Free 目标检测模型。具有体积小(1.8 MB)、速度快(10.23 ms)、便于训练(硬件要求低)、部署简单(安卓示例)等优点

    36、DeepMoji:通过深度学习把自然语言转化成 emoji 表情的项目。用机器学习来了解文字表达的情感,最后返回几个感情相近的 emoji 表情。该项目有趣且易于学习,包含机器学习项目该有的所有内容:示例、模型、数据、测试、源码等


    最后

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

    关注 HelloGitHub 公众号 收到第一时间的更新。

    还有更多开源项目的介绍和宝藏项目等待你的发掘。