Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // WithObserveDataTags sets the list of data tags for the Source. WithObserveDataTags = func(tags ...frame.Tag) SourceOption { return SourceOption(core.WithObserveDataTags(tags...)) } // 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)) } // WithTracerProvider sets tracer provider for the Source. WithTracerProvider = func(tp trace.TracerProvider) SourceOption { return SourceOption(core.WithTracerProvider(tp)) } )
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)) } // WithSfnTracerProvider sets tracer provider for the Sfn. WithSfnTracerProvider = func(tp trace.TracerProvider) SfnOption { return SfnOption(core.WithTracerProvider(tp)) } )
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)) } } // WithUpstreamOption provides upstream zipper options for Zipper. WithUpstreamOption = func(opts ...ClientOption) ZipperOption { return func(o *zipperOptions) { o.clientOption = opts } } // WithZipperTracerProvider sets tracer provider for the zipper. WithZipperTracerProvider = func(tp trace.TracerProvider) ZipperOption { return func(o *zipperOptions) { o.serverOption = append(o.serverOption, core.WithServerTracerProvider(tp)) } } // WithConnMiddleware sets conn middleware for the zipper. WithZipperConnMiddleware = func(mw ...core.ConnMiddleware) ZipperOption { return func(o *zipperOptions) { o.serverOption = append(o.serverOption, core.WithConnMiddleware(mw...)) } } // WithFrameMiddleware 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 // SetErrorHandler set the error handler function when server error occurs SetErrorHandler(fn func(err error)) // [Experimental] SetReceiveHandler set the observe handler function SetReceiveHandler(fn func(tag uint32, data []byte)) }
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 { // 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 // 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`.
func NewZipper ¶
func NewZipper(name string, meshConfig map[string]config.Downstream, options ...ZipperOption) (Zipper, error)
NewZipper returns a zipper.
type ZipperOption ¶ added in v1.12.2
type ZipperOption func(*zipperOptions)
ZipperOption is option for the Zipper.
Directories ¶
Path | Synopsis |
---|---|
serverless/deno
Package deno provides a js/ts serverless runtime
|
Package deno provides a js/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 providers a default implement of `router` and `Route`.
|
Package router providers a default implement of `router` and `Route`. |
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 |
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 |
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 open tracing.
|
Package trace provides open tracing. |
Package rx provides the Rx interfaces.
|
Package rx provides the Rx interfaces. |
Package serverless defines serverless handler context
|
Package serverless defines serverless handler context |
guest
guest wasm application programming interface for guest module
|
guest wasm application programming interface for guest module |
Click to show internal directories.
Click to hide internal directories.