Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // WithCredential sets the credential method for the Source. WithCredential = func(payload string) SourceOption { return SourceOption(core.WithCredential(payload)) } // WithSourceTLSConfig sets tls config for the Source. WithSourceTLSConfig = func(tc *tls.Config) SourceOption { return SourceOption(core.WithClientTLSConfig(tc)) } // WithSourceQuicConfig sets quic config for the Source. WithSourceQuicConfig = func(qc *quic.Config) SourceOption { return SourceOption(core.WithClientQuicConfig(qc)) } // WithLogger sets logger for the Source. WithLogger = func(l *slog.Logger) SourceOption { return SourceOption(core.WithLogger(l)) } // WithSourceReConnect makes source Connect until success, unless authentication fails. WithSourceReConnect = func() SourceOption { return SourceOption(core.WithReConnect()) } )
SourceOption Options.
View Source
var ( // WithSfnCredential sets the credential method for the Sfn. WithSfnCredential = func(payload string) SfnOption { return SfnOption(core.WithCredential(payload)) } // WithSfnTLSConfig sets tls config for the Sfn. WithSfnTLSConfig = func(tc *tls.Config) SfnOption { return SfnOption(core.WithClientTLSConfig(tc)) } // WithSfnQuicConfig sets quic config for the Sfn. WithSfnQuicConfig = func(qc *quic.Config) SfnOption { return SfnOption(core.WithClientQuicConfig(qc)) } // WithSfnLogger sets logger for the Sfn. WithSfnLogger = func(l *slog.Logger) SfnOption { return SfnOption(core.WithLogger(l)) } // WithSfnReConnect makes sfn Connect until success, unless authentication fails. WithSfnReConnect = func() SfnOption { return SfnOption(core.WithReConnect()) } // WithSfnAIFunctionDefinition sets AI function definition for the Sfn. WithSfnAIFunctionDefinition = func(description string, inputModel any) SfnOption { return SfnOption(core.WithAIFunctionDefinition(description, inputModel)) } // WithAIFunctionJsonDefinition sets AI function definition for the Sfn in the form of jsonschema string. WithAIFunctionJsonDefinition = func(jsonschema string) SfnOption { return SfnOption(core.WithAIFunctionJsonDefinition(jsonschema)) } // DisableOtelTrace determines whether to disable otel trace. DisableOtelTrace = func() SfnOption { return SfnOption(core.DisableOtelTrace()) } )
Sfn Options.
View Source
var ( // WithAuth sets the zipper authentication method. WithAuth = func(name string, args ...string) ZipperOption { return func(zo *zipperOptions) { zo.serverOption = append(zo.serverOption, core.WithAuth(name, args...)) } } // WithZipperTLSConfig sets the TLS configuration for the zipper. WithZipperTLSConfig = func(tc *tls.Config) ZipperOption { return func(zo *zipperOptions) { zo.serverOption = append(zo.serverOption, core.WithServerTLSConfig(tc)) } } // WithZipperQuicConfig sets the QUIC configuration for the zipper. WithZipperQuicConfig = func(qc *quic.Config) ZipperOption { return func(zo *zipperOptions) { zo.serverOption = append(zo.serverOption, core.WithServerQuicConfig(qc)) } } // WithZipperLogger sets logger for the zipper. WithZipperLogger = func(l *slog.Logger) ZipperOption { return func(zo *zipperOptions) { zo.serverOption = append(zo.serverOption, core.WithServerLogger(l)) } } // WithRouter sets router for the zipper. WithRouter = func(r router.Router) ZipperOption { return func(zo *zipperOptions) { zo.serverOption = append(zo.serverOption, core.WithRouter(r)) } } // WithConnector sets connector for the zipper. WithConnector = func(c core.Connector) ZipperOption { return func(zo *zipperOptions) { zo.serverOption = append(zo.serverOption, core.WithConnector(c)) } } // WithVersionNegotiateFunc sets the version negotiate function for the zipper WithVersionNegotiateFunc = func(f core.VersionNegotiateFunc) ZipperOption { return func(zo *zipperOptions) { zo.serverOption = append(zo.serverOption, core.WithVersionNegotiateFunc(f)) } } // WithUpstreamOption provides upstream zipper options for Zipper. WithUpstreamOption = func(opts ...ClientOption) ZipperOption { return func(o *zipperOptions) { o.clientOption = opts } } // WithZipperConnMiddleware sets conn middleware for the zipper. WithZipperConnMiddleware = func(mw ...core.ConnMiddleware) ZipperOption { return func(o *zipperOptions) { o.serverOption = append(o.serverOption, core.WithConnMiddleware(mw...)) } } // WithZipperFrameMiddleware sets frame middleware for the zipper. WithZipperFrameMiddleware = func(mw ...core.FrameMiddleware) ZipperOption { return func(o *zipperOptions) { o.serverOption = append(o.serverOption, core.WithFrameMiddleware(mw...)) } } )
Functions ¶
Types ¶
type ClientOption ¶ added in v1.12.2
type ClientOption = core.ClientOption
ClientOption is option for the upstream Zipper.
type Source ¶
type Source interface { // Close will close the connection to YoMo-Zipper. Close() error // Connect to YoMo-Zipper. Connect() error // Write the data to directed downstream. Write(tag uint32, data []byte) error // WriteWithTarget writes data to sfn instance with specified target. WriteWithTarget(tag uint32, data []byte, target string) error // SetErrorHandler set the error handler function when server error occurs SetErrorHandler(fn func(err error)) }
Source is responsible for sending data to yomo.
func NewSource ¶
func NewSource(name, zipperAddr string, opts ...SourceOption) Source
NewSource create a yomo-source
type SourceOption ¶ added in v1.12.0
type SourceOption core.ClientOption
SourceOption is option for the Source.
type StreamFunction ¶
type StreamFunction interface { // SetWantedTarget sets target for sfn that to receive data carrying the same target. // This function is optional and it should be called before Connect(). SetWantedTarget(string) // SetObserveDataTags set the data tag list that will be observed SetObserveDataTags(tag ...uint32) // Init will initialize the stream function Init(fn func() error) error // SetHandler set the handler function, which accept the raw bytes data and return the tag & response SetHandler(fn core.AsyncHandler) error // SetErrorHandler set the error handler function when server error occurs SetErrorHandler(fn func(err error)) // SetPipeHandler set the pipe handler function SetPipeHandler(fn core.PipeHandler) error // SetCronHandler set the cron handler function. // Examples: // sfn.SetCronHandler("0 30 * * * *", func(ctx serverless.CronContext) {}) // sfn.SetCronHandler("@hourly", func(ctx serverless.CronContext) {}) // sfn.SetCronHandler("@every 1h30m", func(ctx serverless.CronContext) {}) // more spec style see: https://pkg.go.dev/github.com/robfig/cron#hdr-Usage SetCronHandler(spec string, fn core.CronHandler) error // Connect create a connection to the zipper Connect() error // Close will close the connection Close() error // Wait waits sfn to finish. Wait() }
StreamFunction defines serverless streaming functions.
func NewStreamFunction ¶
func NewStreamFunction(name, zipperAddr string, opts ...SfnOption) StreamFunction
NewStreamFunction create a stream function.
type Zipper ¶
type Zipper interface { // Logger returns the logger of zipper. Logger() *slog.Logger // ListenAndServe start zipper as server. ListenAndServe(context.Context, string) error // Close will close the zipper. Close() error }
Zipper is the orchestrator of yomo. There are two types of zipper: one is Upstream Zipper, which is used to connect to multiple downstream zippers, another one is Downstream Zipper (will call it as Zipper directly), which is used to connected by `Upstream Zipper`, `Source` and `Stream Function`.
type ZipperOption ¶ added in v1.12.2
type ZipperOption func(*zipperOptions)
ZipperOption is option for the Zipper.
Directories ¶
Path | Synopsis |
---|---|
Package ai contains the model for LLM Function Calling features
|
Package ai contains the model for LLM Function Calling features |
serverless/nodejs
Package nodejs provides a ts serverless runtime
|
Package nodejs provides a ts serverless runtime |
serverless/wasm
Package wasm provides WebAssembly serverless function runtimes.
|
Package wasm provides WebAssembly serverless function runtimes. |
cmd
|
|
Package core provides the core functions of YoMo.
|
Package core provides the core functions of YoMo. |
auth
Package auth provides authentication.
|
Package auth provides authentication. |
frame
Package frame defines frames for yomo.
|
Package frame defines frames for yomo. |
metadata
Package metadata defines Metadata of the DataFrame.
|
Package metadata defines Metadata of the DataFrame. |
router
Package router defines the interface of router.
|
Package router defines the interface of router. |
serverless
Package serverless provides the server serverless function context.
|
Package serverless provides the server serverless function context. |
ylog
Package ylog provides a slog.Logger instance for logging.
|
Package ylog provides a slog.Logger instance for logging. |
example
|
|
pkg
|
|
auth
Package auth provides token based authentication
|
Package auth provides token based authentication |
bridge/ai
Package ai provide LLM Function Calling features
|
Package ai provide LLM Function Calling features |
bridge/ai/provider
Package provider defines the ai.Provider interface and provides a mock provider for unittest.
|
Package provider defines the ai.Provider interface and provides a mock provider for unittest. |
bridge/ai/provider/anthropic
Package anthropic is the anthropic llm provider, see https://docs.anthropic.com
|
Package anthropic is the anthropic llm provider, see https://docs.anthropic.com |
bridge/ai/provider/azopenai
Package azopenai is used to provide the Azure OpenAI service
|
Package azopenai is used to provide the Azure OpenAI service |
bridge/ai/provider/cerebras
Package cerebras is the Cerebras llm provider
|
Package cerebras is the Cerebras llm provider |
bridge/ai/provider/cfazure
Package cfazure is used to provide the Azure OpenAI service
|
Package cfazure is used to provide the Azure OpenAI service |
bridge/ai/provider/cfopenai
Package cfopenai is used to provide the Azure OpenAI service
|
Package cfopenai is used to provide the Azure OpenAI service |
bridge/ai/provider/gemini
Package gemini is used to provide the gemini service
|
Package gemini is used to provide the gemini service |
bridge/ai/provider/githubmodels
Package githubmodels is the Github Models llm provider, see https://github.com/marketplace/models
|
Package githubmodels is the Github Models llm provider, see https://github.com/marketplace/models |
bridge/ai/provider/ollama
Package ollama is used to provide the Ollama service for YoMo Bridge.
|
Package ollama is used to provide the Ollama service for YoMo Bridge. |
bridge/ai/provider/openai
Package openai is the OpenAI llm provider
|
Package openai is the OpenAI llm provider |
bridge/ai/provider/vertexai
Package vertexai is used to provide the vertexai service
|
Package vertexai is used to provide the vertexai service |
bridge/ai/provider/xai
Package xai is the x.ai provider
|
Package xai is the x.ai provider |
bridge/ai/register
Package register provides a register for registering and unregistering functions
|
Package register provides a register for registering and unregistering functions |
config
Package config provides configurations for cascading zippers.
|
Package config provides configurations for cascading zippers. |
file
Package file provides file operations
|
Package file provides file operations |
frame-codec/y3codec
Package y3codec provides the y3 implement of frame.PacketReadWriter/frame.Codec.
|
Package y3codec provides the y3 implement of frame.PacketReadWriter/frame.Codec. |
id
Package id provides id generation
|
Package id provides id generation |
listener/quic
Package yquic provides a quic implementation of yomo.FrameConn.
|
Package yquic provides a quic implementation of yomo.FrameConn. |
log
Package log provides logging utilities.
|
Package log provides logging utilities. |
tls
Package tls provides tls config for yomo.
|
Package tls provides tls config for yomo. |
trace
Package trace provides otel span tracer for YoMo's stream function.
|
Package trace provides otel span tracer for YoMo's stream function. |
Package serverless defines serverless handler context
|
Package serverless defines serverless handler context |
guest
Package guest wasm application programming interface for guest module
|
Package guest wasm application programming interface for guest module |
mock
Package mock provides a mock context for stream function.
|
Package mock provides a mock context for stream function. |
Click to show internal directories.
Click to hide internal directories.