 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Overview ¶
Package sponge is a powerful Go development framework that makes it easy to develop web, gRPC, and microservices projects.
Github: https://github.com/go-dev-frame/sponge
Documentation: https://go-sponge.com
Usage:
sponge [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
config Generate go config code from yaml file
help Help about any command
init Initialize sponge
merge Merge the generated code into the template file
micro Generate protobuf, model, cache, dao, service, grpc, grpc+http, grpc-gw, grpc-cli code
patch Patch the generated code
plugins Managing sponge dependency plugins
run Run code generation UI service
template Generate code based on custom templates
upgrade Upgrade sponge version
web Generate model, cache, dao, handler, http code
Flags:
-h, --help help for sponge
-v, --version version for sponge
Use "sponge [command] --help" for more information about a command.
       Directories
      ¶
      Directories
      ¶
    
    | Path | Synopsis | 
|---|---|
| api
       | |
| cmd
       | |
| 
          
            protoc-gen-go-gin
            
            command
          
           Package main generate *.go(tmpl), *_router.go, *_http.go, *_router.pb.go code based on proto files. | Package main generate *.go(tmpl), *_router.go, *_http.go, *_router.pb.go code based on proto files. | 
| 
          
            protoc-gen-go-gin/internal/generate/handler
            
            
          
           Package handler is to generate template code, router code, and error code. | Package handler is to generate template code, router code, and error code. | 
| 
          
            protoc-gen-go-gin/internal/generate/router
            
            
          
           Package router is to generate gin router code. | Package router is to generate gin router code. | 
| 
          
            protoc-gen-go-gin/internal/generate/service
            
            
          
           Package service is to generate template code, router code, and error code. | Package service is to generate template code, router code, and error code. | 
| 
          
            protoc-gen-go-gin/internal/parse
            
            
          
           Package parse is parsed proto file to struct | Package parse is parsed proto file to struct | 
| 
          
            protoc-gen-go-rpc-tmpl
            
            command
          
           Package main is to generate *.go(tmpl), *_client_test.go, *_rpc.go files. | Package main is to generate *.go(tmpl), *_client_test.go, *_rpc.go files. | 
| 
          
            protoc-gen-go-rpc-tmpl/internal/generate/service
            
            
          
           Package service is to generate template code, test code, and error code. | Package service is to generate template code, test code, and error code. | 
| 
          
            protoc-gen-go-rpc-tmpl/internal/parse
            
            
          
           Package parse is parsed proto file to struct | Package parse is parsed proto file to struct | 
| 
          
            protoc-gen-json-field
            
            command
          
           Package main is a library that parses protobuf files into json | Package main is a library that parses protobuf files into json | 
| 
          
            protoc-gen-json-field/generate
            
            
          
           Package generate is generate json field code. | Package generate is generate json field code. | 
| 
          
            protoc-gen-json-field/parser
            
            
          
           Package parser is parsed proto file to struct | Package parser is parsed proto file to struct | 
| 
          
            serverNameExample_grpcExample
            
            command
          
           Package main is the grpc server of the application. | Package main is the grpc server of the application. | 
| 
          
            serverNameExample_grpcExample/initial
            
            
          
           Package initial is the package that starts the service to initialize the service, including the initialization configuration, service configuration, connecting to the database, and resource release needed when shutting down the service. | Package initial is the package that starts the service to initialize the service, including the initialization configuration, service configuration, connecting to the database, and resource release needed when shutting down the service. | 
| 
          
            serverNameExample_grpcGwPbExample
            
            command
          
           Package main is the grpc gateway server of the application. | Package main is the grpc gateway server of the application. | 
| 
          
            serverNameExample_grpcGwPbExample/initial
            
            
          
           Package initial is the package that starts the service to initialize the service, including the initialization configuration, service configuration, connecting to the database, and resource release needed when shutting down the service. | Package initial is the package that starts the service to initialize the service, including the initialization configuration, service configuration, connecting to the database, and resource release needed when shutting down the service. | 
| 
          
            serverNameExample_grpcHttpPbExample
            
            command
          
           Package main is the http and grpc server of the application. | Package main is the http and grpc server of the application. | 
| 
          
            serverNameExample_grpcHttpPbExample/initial
            
            
          
           Package initial is the package that starts the service to initialize the service, including the initialization configuration, service configuration, connecting to the database, and resource release needed when shutting down the service. | Package initial is the package that starts the service to initialize the service, including the initialization configuration, service configuration, connecting to the database, and resource release needed when shutting down the service. | 
| 
          
            serverNameExample_grpcPbExample
            
            command
          
           Package main is the grpc server of the application. | Package main is the grpc server of the application. | 
| 
          
            serverNameExample_grpcPbExample/initial
            
            
          
           Package initial is the package that starts the service to initialize the service, including the initialization configuration, service configuration, connecting to the database, and resource release needed when shutting down the service. | Package initial is the package that starts the service to initialize the service, including the initialization configuration, service configuration, connecting to the database, and resource release needed when shutting down the service. | 
| 
          
            serverNameExample_httpExample
            
            command
          
           Package main is the http server of the application. | Package main is the http server of the application. | 
| 
          
            serverNameExample_httpExample/initial
            
            
          
           Package initial is the package that starts the service to initialize the service, including the initialization configuration, service configuration, connecting to the database, and resource release needed when shutting down the service. | Package initial is the package that starts the service to initialize the service, including the initialization configuration, service configuration, connecting to the database, and resource release needed when shutting down the service. | 
| 
          
            serverNameExample_httpPbExample
            
            command
          
           Package main is the http server of the application. | Package main is the http server of the application. | 
| 
          
            serverNameExample_httpPbExample/initial
            
            
          
           Package initial is the package that starts the service to initialize the service, including the initialization configuration, service configuration, connecting to the database, and resource release needed when shutting down the service. | Package initial is the package that starts the service to initialize the service, including the initialization configuration, service configuration, connecting to the database, and resource release needed when shutting down the service. | 
| 
          
            serverNameExample_mixExample
            
            command
          
           Package main is the http and grpc server of the application. | Package main is the http and grpc server of the application. | 
| 
          
            serverNameExample_mixExample/initial
            
            
          
           Package initial is the package that starts the service to initialize the service, including the initialization configuration, service configuration, connecting to the database, and resource release needed when shutting down the service. | Package initial is the package that starts the service to initialize the service, including the initialization configuration, service configuration, connecting to the database, and resource release needed when shutting down the service. | 
| 
          
            sponge
            
            command
          
           Package main sponge is a basic development framework that integrates code auto generation, Gin and GRPC, a microservice framework. | Package main sponge is a basic development framework that integrates code auto generation, Gin and GRPC, a microservice framework. | 
| 
          
            sponge/commands
            
            
          
           Package commands are subcommands of the sponge command. | Package commands are subcommands of the sponge command. | 
| 
          
            sponge/commands/generate
            
            
          
           Package generate is to generate code, including model, cache, dao, handler, http, service, grpc, grpc-gw, grpc-cli code. | Package generate is to generate code, including model, cache, dao, handler, http, service, grpc, grpc-gw, grpc-cli code. | 
| 
          
            sponge/commands/merge
            
            
          
           Package merge is merge the generated code into the template file, you don't worry about it affecting the logic code you have already written, in case of accidents, you can find the pre-merge code in the directory /tmp/sponge_merge_backup_code | Package merge is merge the generated code into the template file, you don't worry about it affecting the logic code you have already written, in case of accidents, you can find the pre-merge code in the directory /tmp/sponge_merge_backup_code | 
| 
          
            sponge/commands/patch
            
            
          
           Package patch is command set for patching service code. | Package patch is command set for patching service code. | 
| 
          
            sponge/commands/template
            
            
          
           Package template provides commands to generate custom code. | Package template provides commands to generate custom code. | 
| 
          
            sponge/server
            
            
          
           Package server is a sponge UI service that contains the front-end pages. | Package server is a sponge UI service that contains the front-end pages. | 
| Package configs used to locate config file. | Package configs used to locate config file. | 
| internal
       | |
| 
          
            cache
            
            
          
           Package cache is a package that unifies the definition of caching, supporting both redis and local caching. | Package cache is a package that unifies the definition of caching, supporting both redis and local caching. | 
| 
          
            dao
            
            
          
           Package dao is the data access object, the code for database operation is unified here. | Package dao is the data access object, the code for database operation is unified here. | 
| 
          
            database
            
            
          
           Package database provides database client initialization. | Package database provides database client initialization. | 
| 
          
            ecode
            
            
          
           Package ecode is the package that unifies the definition of http error codes or grpc error codes here. | Package ecode is the package that unifies the definition of http error codes or grpc error codes here. | 
| 
          
            handler
            
            
          
           Package handler is a package of http request processing business logic. | Package handler is a package of http request processing business logic. | 
| 
          
            model
            
            
          
           Package model contains the data models used in the application. | Package model contains the data models used in the application. | 
| 
          
            routers
            
            
          
           Package routers is a package dedicated to registering routes, and supports both manual route registration and automatic route registration. | Package routers is a package dedicated to registering routes, and supports both manual route registration and automatic route registration. | 
| 
          
            rpcclient
            
            
          
           Package rpcclient is the rpc client package, used to connect to grpc server, rich plugin support by default, such as service discovery, load balancing, link tracking and so on. | Package rpcclient is the rpc client package, used to connect to grpc server, rich plugin support by default, such as service discovery, load balancing, link tracking and so on. | 
| 
          
            server
            
            
          
           Package server is a package that holds the http or grpc service. | Package server is a package that holds the http or grpc service. | 
| 
          
            service
            
            
          
           Package service A grpc server-side or client-side package that handles business logic. | Package service A grpc server-side or client-side package that handles business logic. | 
| 
          
            types
            
            
          
           Package types define the structure of request parameters and return results in this package | Package types define the structure of request parameters and return results in this package | 
| pkg
       | |
| 
          
            app
            
            
          
           Package app is starting and stopping services gracefully, using golang.org/x/sync/errgroup to ensure that multiple services are started properly at the same time. | Package app is starting and stopping services gracefully, using golang.org/x/sync/errgroup to ensure that multiple services are started properly at the same time. | 
| 
          
            cache
            
            
          
           Package cache is memory and redis cache libraries. | Package cache is memory and redis cache libraries. | 
| 
          
            conf
            
            
          
           Package conf is parsing yaml, json, toml configuration files to go struct. | Package conf is parsing yaml, json, toml configuration files to go struct. | 
| 
          
            consulcli
            
            
          
           Package consulcli is connecting to the consul service client. | Package consulcli is connecting to the consul service client. | 
| 
          
            container/group
            
            
          
           Package group provides a sample lazy load container. | Package group provides a sample lazy load container. | 
| 
          
            dlock
            
            
          
           Package dlock provides distributed locking primitives, supports redis and etcd. | Package dlock provides distributed locking primitives, supports redis and etcd. | 
| 
          
            encoding
            
            
          
           Package encoding Provides encoding and decoding of json, protobuf and gob. | Package encoding Provides encoding and decoding of json, protobuf and gob. | 
| 
          
            encoding/json
            
            
          
           Package json is a JSON encoding and decoding. | Package json is a JSON encoding and decoding. | 
| 
          
            encoding/proto
            
            
          
           Package proto is a protobuf encoding and decoding. | Package proto is a protobuf encoding and decoding. | 
| 
          
            errcode
            
            
          
           Package errcode is used for http and grpc error codes, include system-level error codes and business-level error codes | Package errcode is used for http and grpc error codes, include system-level error codes and business-level error codes | 
| 
          
            etcdcli
            
            
          
           Package etcdcli is use for connecting to the etcd service | Package etcdcli is use for connecting to the etcd service | 
| 
          
            ggorm
            
            
          
           Package ggorm is a library wrapped on top of gorm.io/gorm, with added features such as link tracing, paging queries, etc. | Package ggorm is a library wrapped on top of gorm.io/gorm, with added features such as link tracing, paging queries, etc. | 
| 
          
            ggorm/query
            
            
          
           Package query is a library of custom condition queries, support for complex conditional paging queries. | Package query is a library of custom condition queries, support for complex conditional paging queries. | 
| 
          
            gin/frontend
            
            
          
           Package frontend embeds the frontend static file and adds routing. | Package frontend embeds the frontend static file and adds routing. | 
| 
          
            gin/handlerfunc
            
            
          
           Package handlerfunc is used for public http request handler. | Package handlerfunc is used for public http request handler. | 
| 
          
            gin/middleware
            
            
          
           Package middleware is gin middleware plugin. | Package middleware is gin middleware plugin. | 
| 
          
            gin/middleware/metrics
            
            
          
           Package metrics is gin metrics library, collect five metrics, "uptime", "http_request_count_total", "http_request_duration_seconds", "http_request_size_bytes", "http_response_size_bytes". | Package metrics is gin metrics library, collect five metrics, "uptime", "http_request_count_total", "http_request_duration_seconds", "http_request_size_bytes", "http_response_size_bytes". | 
| 
          
            gin/prof
            
            
          
           Package prof is used for gin profiling. | Package prof is used for gin profiling. | 
| 
          
            gin/response
            
            
          
           Package response provides wrapper gin returns json data in the same format. | Package response provides wrapper gin returns json data in the same format. | 
| 
          
            gin/swagger
            
            
          
           Package swagger is gin swagger library. | Package swagger is gin swagger library. | 
| 
          
            gin/validator
            
            
          
           Package validator is gin request parameter check library. | Package validator is gin request parameter check library. | 
| 
          
            gobash
            
            
          
           Package gobash provides the ability to execute commands, scripts, executables in the go environment with live log output. | Package gobash provides the ability to execute commands, scripts, executables in the go environment with live log output. | 
| 
          
            gocron
            
            
          
           Package gocron is scheduled task library. | Package gocron is scheduled task library. | 
| 
          
            gocrypto
            
            
          
           Package gocrypto is commonly used one-way encryption, symmetric encryption and decryption, asymmetric encryption and decryption libraries, including hash, aes, des, rsa. | Package gocrypto is commonly used one-way encryption, symmetric encryption and decryption, asymmetric encryption and decryption libraries, including hash, aes, des, rsa. | 
| 
          
            gocrypto/wcipher
            
            
          
           Package wcipher is a package to encrypt and decrypt data. | Package wcipher is a package to encrypt and decrypt data. | 
| 
          
            gofile
            
            
          
           Package gofile is file and directory management libraries. | Package gofile is file and directory management libraries. | 
| 
          
            goredis
            
            
          
           Package goredis is a library wrapped on top of github.com/go-redis/redis. | Package goredis is a library wrapped on top of github.com/go-redis/redis. | 
| 
          
            gotest
            
            
          
           Package gotest is a library that simulates the testing of cache, dao and handler. | Package gotest is a library that simulates the testing of cache, dao and handler. | 
| 
          
            grpc/benchmark
            
            
          
           Package benchmark is compression testing of rpc methods and generation of reported results. | Package benchmark is compression testing of rpc methods and generation of reported results. | 
| 
          
            grpc/client
            
            
          
           Package client is generic grpc client-side. | Package client is generic grpc client-side. | 
| 
          
            grpc/grpccli
            
            
          
           Package grpccli is grpc client with support for service discovery, logging, load balancing, trace, metrics, retries, circuit breaker. | Package grpccli is grpc client with support for service discovery, logging, load balancing, trace, metrics, retries, circuit breaker. | 
| 
          
            grpc/gtls
            
            
          
           Package gtls provides grpc secure connectivity, supporting both server-only authentication and client-server authentication. | Package gtls provides grpc secure connectivity, supporting both server-only authentication and client-server authentication. | 
| 
          
            grpc/gtls/certfile
            
            
          
           Package certfile is used to locate the certificate file. | Package certfile is used to locate the certificate file. | 
| 
          
            grpc/interceptor
            
            
          
           Package interceptor provides commonly used grpc client-side and server-side interceptors. | Package interceptor provides commonly used grpc client-side and server-side interceptors. | 
| 
          
            grpc/keepalive
            
            
          
           Package keepalive is setting grpc keepalive parameters. | Package keepalive is setting grpc keepalive parameters. | 
| 
          
            grpc/metrics
            
            
          
           Package metrics is grpc's server-side and client-side metrics can continue to be captured using prometheus. | Package metrics is grpc's server-side and client-side metrics can continue to be captured using prometheus. | 
| 
          
            grpc/resolve
            
            
          
           Package resolve is setting grpc client-side load balancing policy. | Package resolve is setting grpc client-side load balancing policy. | 
| 
          
            grpc/server
            
            
          
           Package server is generic grpc server-side. | Package server is generic grpc server-side. | 
| 
          
            httpcli
            
            
          
           Package httpcli is http request client, which only supports return json format. | Package httpcli is http request client, which only supports return json format. | 
| 
          
            jwt
            
            
          
           Package jwt is token generation and validation. | Package jwt is token generation and validation. | 
| 
          
            jy2struct
            
            
          
           Package jy2struct is a library for generating go struct code, supporting json and yaml. | Package jy2struct is a library for generating go struct code, supporting json and yaml. | 
| 
          
            kafka
            
            
          
           Package kafka is a kafka client package. | Package kafka is a kafka client package. | 
| 
          
            krand
            
            
          
           Package krand is a library for generating random strings, integers, floating point numbers. | Package krand is a library for generating random strings, integers, floating point numbers. | 
| 
          
            logger
            
            
          
           Package logger is log library encapsulated in https://github.com/uber-go/zap | Package logger is log library encapsulated in https://github.com/uber-go/zap | 
| 
          
            mgo
            
            
          
           Package mgo is a library wrapped on go.mongodb.org/mongo-driver/mongo, with added features paging queries, etc. | Package mgo is a library wrapped on go.mongodb.org/mongo-driver/mongo, with added features paging queries, etc. | 
| 
          
            mgo/query
            
            
          
           Package query is a library of custom condition queries, support for complex conditional paging queries. | Package query is a library of custom condition queries, support for complex conditional paging queries. | 
| 
          
            nacoscli
            
            
          
           Package nacoscli provides for getting the configuration from the nacos configuration center and parse it into a structure. | Package nacoscli provides for getting the configuration from the nacos configuration center and parse it into a structure. | 
| 
          
            prof
            
            
          
           Package prof is wrap the official `net/http/pprof` route and add the profile io wait time route. | Package prof is wrap the official `net/http/pprof` route and add the profile io wait time route. | 
| 
          
            rabbitmq
            
            
          
           Package rabbitmq is a go wrapper for github.com/rabbitmq/amqp091-go | Package rabbitmq is a go wrapper for github.com/rabbitmq/amqp091-go | 
| 
          
            replacer
            
            
          
           Package replacer is a library of replacement file content, supports replacement of files in local directories and embedded directory files via embed. | Package replacer is a library of replacement file content, supports replacement of files in local directories and embedded directory files via embed. | 
| 
          
            servicerd/discovery
            
            
          
           Package discovery is service discovery library, supports etcd, consul and nacos. | Package discovery is service discovery library, supports etcd, consul and nacos. | 
| 
          
            servicerd/registry
            
            
          
           Package registry is service registry library, supports etcd, consul and nacos. | Package registry is service registry library, supports etcd, consul and nacos. | 
| 
          
            servicerd/registry/consul
            
            
          
           Package consul is registered as a service using consul. | Package consul is registered as a service using consul. | 
| 
          
            servicerd/registry/etcd
            
            
          
           Package etcd is registered as a service using etcd. | Package etcd is registered as a service using etcd. | 
| 
          
            servicerd/registry/nacos
            
            
          
           Package nacos is registered as a service using nacos. | Package nacos is registered as a service using nacos. | 
| 
          
            sgorm
            
            
          
           Package sgorm is a library encapsulated on gorm.io/gorm | Package sgorm is a library encapsulated on gorm.io/gorm | 
| 
          
            sgorm/dbclose
            
            
          
           Package dbclose provides a function to close gorm db. | Package dbclose provides a function to close gorm db. | 
| 
          
            sgorm/glog
            
            
          
           Package glog provides a gorm logger implementation based on zap. | Package glog provides a gorm logger implementation based on zap. | 
| 
          
            sgorm/mysql
            
            
          
           Package mysql provides a gorm driver for mysql. | Package mysql provides a gorm driver for mysql. | 
| 
          
            sgorm/postgresql
            
            
          
           Package postgresql provides a gorm driver for postgresql. | Package postgresql provides a gorm driver for postgresql. | 
| 
          
            sgorm/query
            
            
          
           Package query is a library of custom condition queries, support for complex conditional paging queries. | Package query is a library of custom condition queries, support for complex conditional paging queries. | 
| 
          
            sgorm/sqlite
            
            
          
           Package sqlite provides a gorm driver for sqlite. | Package sqlite provides a gorm driver for sqlite. | 
| 
          
            shield/circuitbreaker
            
            
          
           Package circuitbreaker is an adaptive circuit breaker library, support for use in gin middleware and grpc interceptors. | Package circuitbreaker is an adaptive circuit breaker library, support for use in gin middleware and grpc interceptors. | 
| 
          
            shield/cpu
            
            
          
           Package cpu is a library that calculates cpu and memory usage. | Package cpu is a library that calculates cpu and memory usage. | 
| 
          
            shield/ratelimit
            
            
          
           Package ratelimit is an adaptive rate limit library, support for use in gin middleware and grpc interceptors. | Package ratelimit is an adaptive rate limit library, support for use in gin middleware and grpc interceptors. | 
| 
          
            shield/window
            
            
          
           Package window is a library that calculates windows cpu and memory usage. | Package window is a library that calculates windows cpu and memory usage. | 
| 
          
            sql2code
            
            
          
           Package sql2code provides for generating code for different purposes according to sql, support generating json, gorm model, update parameter, request parameter code, sql can be obtained from parameter, file, db three ways, priority from high to low. | Package sql2code provides for generating code for different purposes according to sql, support generating json, gorm model, update parameter, request parameter code, sql can be obtained from parameter, file, db three ways, priority from high to low. | 
| 
          
            sql2code/parser
            
            
          
           Package parser is a library that parses to go structures based on sql and generates the code needed based on the template. | Package parser is a library that parses to go structures based on sql and generates the code needed based on the template. | 
| 
          
            stat
            
            
          
           Package stat provides for counting system and process cpu and memory information, alarm notification support. | Package stat provides for counting system and process cpu and memory information, alarm notification support. | 
| 
          
            stat/cpu
            
            
          
           Package cpu is a library that counts system and process cpu usage. | Package cpu is a library that counts system and process cpu usage. | 
| 
          
            stat/mem
            
            
          
           Package mem is a library that counts system and process memory usage. | Package mem is a library that counts system and process memory usage. | 
| 
          
            tracer
            
            
          
           Package tracer is a library wrapped in go.opentelemetry.io/otel. | Package tracer is a library wrapped in go.opentelemetry.io/otel. | 
| 
          
            utils
            
            
          
           Package utils is a library of commonly used utility functions. | Package utils is a library of commonly used utility functions. | 
| 
          
            ws
            
            
          
           Package ws provides a websocket server implementation. | Package ws provides a websocket server implementation. | 
 
 
 
 
 

