Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

盘古,一个受SpringBoot的启发而创建Golang应用程序快速开发框架,尽量让使用者关注业务而不是底层框架;同时,尽量添加一些华丽而且实用的功能来方便开发者的使用。支持的功能有:1、类Springboot高生产力开发框架;2、配置文件无缝切换(支持JSON、YAML、TOML、XML以及环境变量支持和默认值配置支持);3、丰富的插件支持(Web、Http Client、MQTT、Redis、gRPC等一系统生产力集合框架);4、线程安全;5、高度可配置;以及其它一系统旨在提高生产力的功能集合

License

NotificationsYou must be signed in to change notification settings

pangum/pangu

Repository files navigation

编译状态Golang质量版本仓库大小最后提交授权协议语言个数最佳语言星星个数

一个Golang应用程序快速开发框架,有以下特性

  • 快速开发
  • 内置配置文件加载
    • Json/Jsonc/Json5
    • XML
    • 其它
      • YAML,通过引入github.com/pangum/yaml支持
      • TOML,通过引入github.com/pangum/toml支持
      • 携程Apollo,通过引入github.com/pangum/apollo支持
      • 阿里Nacos,通过引入github.com/pangum/nacos支持
    • 很方便定制自己的配置文件加载器
    • 零配置,可完全通过环境变量完成配置
    • 支持配置文件覆盖
    • 支持按模块划分配置文件,比如可以按如下模式划分配置文件
      • application.json/jsonc/xml/toml/yaml/yml,提供应用程序本身需要的相关配置
      • logging.json/jsonc/xml/toml/yaml/yml,提供日志相关配置
      • database.json/jsonc/xml/toml/yaml/yml,提供数据库相关配置
      • grpc.json/jsonc/xml/toml/yaml/yml,提供gRPC相关配置
      • ...其它配置文件
      • 所有配置文件格式可以混用,比如配置可以是jsonjsoncjson5yamlymltoml等任意格式,只要正确的引入了相应的加载器
    • 支持个性化配置文件编写,对于任何一个配置字段,可以有如下形式(比如配置项是logggingLevel
      • 原始配置项loggingLevel
      • 下划线形式logging_level
      • 中划线形式logging-level
  • 内置强大的数据验证
    • 内置强大的且非常多的数据验证器
    • 很方便的定制自己的数据验证器
  • 强大的扩展功能
  • 强大的配置功能
    • 徽标
    • 帮助信息
    • 命令行
    • 一切可配置点皆可配置
  • 线程安全
  • 内置依赖注入
  • 语义化
    • 方便使用
    • 多态行为,同一个调用在不同的场景下有不同的意义

快速开始

Pangu使用非常简单,只需要定义两部分代码启动方法启动器以及依赖关系,对于依赖关系

  • 可以没有依赖,如果没有,就不需要处理依赖
  • 一般稍微大型一点的系统都会有复杂的依赖关系,而这正是盘古框架的强项
  • 对于没有依赖或者依赖非常少的项目,使用盘古反而会使代码变多,这个需要大家酌情考虑

启动方法代码如下

package mainimport (`github.com/pangum/pangu``github.com/pangum/pangum`)funcmain() {panic(pangu.New(pangu.Named(`ziyunix`),pangu.Banner(`Ziyunix Server`,pangu.BannerTypeAscii),    ).Run(newBootstrap))}

启动器的代码如下

package maintypebootstrapstruct {application*pangu.Application}funcnewBootstrap(application*pangu.Application) pangu.Bootstrap {return&bootstrap{application:application,    }}

依赖关系建议像如下处理

package restimport (`github.com/pangum/pangu`)typeServerstruct {}funcnewServer(/* 如果有依赖,可以在这里增加依赖:api *Api */)*Server {returnnew(Server)}funcinit() {pangu.New().Dependencies(newServer,// 其它依赖// ...)}

Pangu有非常多的配置项,请参看使用文档

文档

点击这里查看最新文档

使用示例

点击这里查看最新的代码示例

项目实践

交流

微信群

捐助

支持宝微信

感谢Jetbrains

本项目通过Jetbrains开源许可IDE编写源代码,特此感谢Jetbrains图标

About

盘古,一个受SpringBoot的启发而创建Golang应用程序快速开发框架,尽量让使用者关注业务而不是底层框架;同时,尽量添加一些华丽而且实用的功能来方便开发者的使用。支持的功能有:1、类Springboot高生产力开发框架;2、配置文件无缝切换(支持JSON、YAML、TOML、XML以及环境变量支持和默认值配置支持);3、丰富的插件支持(Web、Http Client、MQTT、Redis、gRPC等一系统生产力集合框架);4、线程安全;5、高度可配置;以及其它一系统旨在提高生产力的功能集合

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp