engine

package
v0.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 2, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package engine 提供网络引擎工厂和注册表。

该模块管理不同 HTTP 框架的引擎实现,支持运行时切换框架。 通过 Factory 接口创建特定框架的组件实例。

核心接口

  • Factory: 引擎工厂接口,用于创建路由器和服务器
  • Registry: 引擎注册表,管理所有已注册的引擎工厂
  • ServerOption: 服务器配置选项函数类型

支持的引擎

  • StdLib: 标准库 net/http

使用方式

注册引擎:

engine.GlobalRegistry.Register(myFactory)

创建路由器:

router, err := engine.GlobalRegistry.CreateRouter()

创建服务器:

server, err := engine.GlobalRegistry.CreateServer(
    engine.WithHost("0.0.0.0"),
    engine.WithPort(8080),
)

Index

Constants

This section is empty.

Variables

View Source
var GlobalRegistry = NewRegistry()

GlobalRegistry 全局网络引擎注册表。

Functions

This section is empty.

Types

type Factory

type Factory interface {
	// Type 返回引擎类型标识。
	Type() Type

	// CreateRouter 创建路由器实例。
	CreateRouter() (core.Router, error)

	// CreateServer 创建服务器实例。
	CreateServer(opts ...ServerOption) (core.Server, error)
}

Factory 网络引擎工厂接口。

实现此接口可以创建特定网络框架的组件实例。

type Registry

type Registry struct {
	// contains filtered or unexported fields
}

Registry 网络引擎注册表。

管理所有已注册的网络引擎工厂,支持运行时切换。

func NewRegistry

func NewRegistry() *Registry

NewRegistry 创建网络引擎注册表。

func (*Registry) CreateRouter

func (r *Registry) CreateRouter() (core.Router, error)

CreateRouter 使用默认引擎创建路由器。

func (*Registry) CreateServer

func (r *Registry) CreateServer(opts ...ServerOption) (core.Server, error)

CreateServer 使用默认引擎创建服务器。

func (*Registry) Get

func (r *Registry) Get(engineType Type) (Factory, error)

Get 获取指定类型的引擎工厂。

参数:

  • engineType: 引擎类型

返回值:

  • Factory: 引擎工厂实例
  • error: 引擎未注册时返回错误

func (*Registry) GetDefault

func (r *Registry) GetDefault() Type

GetDefault 获取默认引擎类型。

func (*Registry) HasEngine

func (r *Registry) HasEngine(engineType Type) bool

HasEngine 检查引擎是否已注册。

func (*Registry) ListEngines

func (r *Registry) ListEngines() []Type

ListEngines 获取所有已注册的引擎类型。

func (*Registry) Register

func (r *Registry) Register(factory Factory)

Register 注册网络引擎工厂。

参数:

  • factory: 引擎工厂实例

注意:

  • 同一引擎类型只能注册一次,重复注册会 panic
  • 注册是线程安全的

func (*Registry) SetDefault

func (r *Registry) SetDefault(engineType Type)

SetDefault 设置默认引擎类型。

type RouterAdapter

type RouterAdapter struct {
	// contains filtered or unexported fields
}

RouterAdapter 将不同框架的路由器适配为统一的 Router 接口。

func NewRouterAdapter

func NewRouterAdapter(
	get func(path string, handler core.HandlerFunc),
	post func(path string, handler core.HandlerFunc),
	put func(path string, handler core.HandlerFunc),
	delete func(path string, handler core.HandlerFunc),
	patch func(path string, handler core.HandlerFunc),
	group func(prefix string) core.Router,
	use func(middleware core.MiddlewareFunc),
) *RouterAdapter

NewRouterAdapter 创建路由器适配器。

func (*RouterAdapter) DELETE

func (a *RouterAdapter) DELETE(path string, handler core.HandlerFunc)

DELETE 注册 DELETE 路由。

func (*RouterAdapter) GET

func (a *RouterAdapter) GET(path string, handler core.HandlerFunc)

GET 注册 GET 路由。

func (*RouterAdapter) Group

func (a *RouterAdapter) Group(prefix string) core.Router

Group 创建路由组。

func (*RouterAdapter) PATCH

func (a *RouterAdapter) PATCH(path string, handler core.HandlerFunc)

PATCH 注册 PATCH 路由。

func (*RouterAdapter) POST

func (a *RouterAdapter) POST(path string, handler core.HandlerFunc)

POST 注册 POST 路由。

func (*RouterAdapter) PUT

func (a *RouterAdapter) PUT(path string, handler core.HandlerFunc)

PUT 注册 PUT 路由。

func (*RouterAdapter) Use

func (a *RouterAdapter) Use(middleware core.MiddlewareFunc)

Use 注册中间件。

type ServerAdapter

type ServerAdapter struct {
	// contains filtered or unexported fields
}

ServerAdapter 将不同框架的服务器适配为统一的 Server 接口。

func NewServerAdapter

func NewServerAdapter(
	start func() error,
	stop func(ctx context.Context) error,
	setHandler func(handler any),
	use func(m any),
) *ServerAdapter

NewServerAdapter 创建服务器适配器。

func (*ServerAdapter) SetHandler

func (a *ServerAdapter) SetHandler(handler any)

SetHandler 设置处理器。

func (*ServerAdapter) Start

func (a *ServerAdapter) Start() error

Start 启动服务器。

func (*ServerAdapter) Stop

func (a *ServerAdapter) Stop(ctx context.Context) error

Stop 停止服务器。

func (*ServerAdapter) Use

func (a *ServerAdapter) Use(m any)

Use 注册中间件。

type ServerConfig

type ServerConfig struct {
	// Host 监听地址。
	Host string
	// Port 监听端口。
	Port int
	// ReadTimeout 读取超时时间(秒)。
	ReadTimeout int
	// WriteTimeout 写入超时时间(秒)。
	WriteTimeout int
	// IdleTimeout 空闲超时时间(秒)。
	IdleTimeout int
	// TLSCertFile TLS 证书文件路径。
	TLSCertFile string
	// TLSKeyFile TLS 密钥文件路径。
	TLSKeyFile string
}

ServerConfig 服务器配置。

func DefaultServerConfig

func DefaultServerConfig() *ServerConfig

DefaultServerConfig 返回默认服务器配置。

type ServerOption

type ServerOption func(*ServerConfig)

ServerOption 服务器配置选项函数类型。

func WithHost

func WithHost(host string) ServerOption

WithHost 设置服务器监听地址。

func WithIdleTimeout

func WithIdleTimeout(timeout int) ServerOption

WithIdleTimeout 设置空闲超时时间(秒)。

func WithPort

func WithPort(port int) ServerOption

WithPort 设置服务器监听端口。

func WithReadTimeout

func WithReadTimeout(timeout int) ServerOption

WithReadTimeout 设置读取超时时间(秒)。

func WithTLS

func WithTLS(certFile, keyFile string) ServerOption

WithTLS 设置 TLS 证书和密钥文件。

func WithWriteTimeout

func WithWriteTimeout(timeout int) ServerOption

WithWriteTimeout 设置写入超时时间(秒)。

type Type

type Type string

Type 网络引擎类型标识。

const (
	// StdLib 标准库 net/http。
	StdLib Type = "stdlib"
)

Directories

Path Synopsis
Package stdlib 提供基于标准库 net/http 的引擎实现。
Package stdlib 提供基于标准库 net/http 的引擎实现。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL