wasm

package
v1.2.4-rc2 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2023 License: Apache-2.0 Imports: 35 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var NameVersion = "w3bstream@v0.0.1"

Functions

func CustomMetricsFromContext added in v1.1.0

func CustomMetricsFromContext(ctx context.Context) (custommetrics.Metrics, bool)

func InitConfiguration added in v1.1.0

func InitConfiguration(ctx context.Context, c Configuration) error

func LoggerFromContext added in v1.0.0

func LoggerFromContext(ctx context.Context) (log.Logger, bool)

func MustCustomMetricsFromContext added in v1.1.0

func MustCustomMetricsFromContext(ctx context.Context) custommetrics.Metrics

func MustLoggerFromContext added in v1.0.0

func MustLoggerFromContext(ctx context.Context) log.Logger

func MustRedisPrefixFromContext added in v1.0.0

func MustRedisPrefixFromContext(ctx context.Context) string

func MustRuntimeEventTypesFromContext added in v1.1.0

func MustRuntimeEventTypesFromContext(ctx context.Context) *mapx.Map[uint32, []byte]

func MustRuntimeResourceFromContext added in v1.0.0

func MustRuntimeResourceFromContext(ctx context.Context) *mapx.Map[uint32, []byte]

func RedisPrefixFromContext added in v1.0.0

func RedisPrefixFromContext(ctx context.Context) (string, bool)

func RuntimeEventTypesFromContext added in v1.1.0

func RuntimeEventTypesFromContext(ctx context.Context) (*mapx.Map[uint32, []byte], bool)

func RuntimeResourceFromContext added in v1.0.0

func RuntimeResourceFromContext(ctx context.Context) (*mapx.Map[uint32, []byte], bool)

func UninitConfiguration added in v1.1.0

func UninitConfiguration(ctx context.Context, c Configuration) error

func WithChainClient added in v1.0.0

func WithChainClient(ctx context.Context, v *ChainClient) context.Context

func WithChainClientContext added in v1.0.0

func WithChainClientContext(v *ChainClient) contextx.WithContext

func WithCustomMetrics added in v1.1.0

func WithCustomMetrics(ctx context.Context, mt custommetrics.Metrics) context.Context

func WithCustomMetricsContext added in v1.1.0

func WithCustomMetricsContext(mt custommetrics.Metrics) contextx.WithContext

func WithEnv added in v1.0.0

func WithEnv(ctx context.Context, v *Env) context.Context

func WithEnvContext added in v1.0.0

func WithEnvContext(v *Env) contextx.WithContext

func WithKVStore added in v1.0.0

func WithKVStore(ctx context.Context, v KVStore) context.Context

func WithKVStoreContext added in v1.0.0

func WithKVStoreContext(v KVStore) contextx.WithContext

func WithLogger added in v1.0.0

func WithLogger(ctx context.Context, v log.Logger) context.Context

func WithLoggerContext added in v1.0.0

func WithLoggerContext(v log.Logger) contextx.WithContext

func WithMQTTClient added in v1.1.0

func WithMQTTClient(ctx context.Context, mq *MqttClient) context.Context

func WithMQTTClientContext added in v1.1.0

func WithMQTTClientContext(mq *MqttClient) contextx.WithContext

func WithRedisPrefix added in v1.0.0

func WithRedisPrefix(ctx context.Context, v string) context.Context

func WithRedisPrefixContext added in v1.0.0

func WithRedisPrefixContext(v string) contextx.WithContext

func WithRuntimeEventTypes added in v1.1.0

func WithRuntimeEventTypes(ctx context.Context, v *mapx.Map[uint32, []byte]) context.Context

func WithRuntimeEventTypesContext added in v1.1.0

func WithRuntimeEventTypesContext(v *mapx.Map[uint32, []byte]) contextx.WithContext

func WithRuntimeResource added in v1.0.0

func WithRuntimeResource(ctx context.Context, v *mapx.Map[uint32, []byte]) context.Context

func WithRuntimeResourceContext added in v1.0.0

func WithRuntimeResourceContext(v *mapx.Map[uint32, []byte]) contextx.WithContext

func WithSQLStore added in v1.0.0

func WithSQLStore(ctx context.Context, v *Database) context.Context

func WithSQLStoreContext added in v1.0.0

func WithSQLStoreContext(v *Database) contextx.WithContext

Types

type ABI

type ABI interface {
	Log(loglevel, ptr, size int32) int32
	GetData(rid, vmAddrPtr, vmSizePtr int32) int32
	SetData(rid, addr, size int32) int32
	GetDB(kAddr, kSize, vmAddrPtr, vmSizePtr int32) int32
	SetDB(kAddr, kSize, vAddr, vSize int32) int32
	SendTX(chainid int32, offset, size, vmAddrPtr, vmSizePtr int32) int32
	CallContract(chainid int32, offset, size, vmAddrPtr, vmSizePtr int32) int32
	SetSQLDB(addr, size int32) int32
	GetSQLDB(addr, size, vmAddrPtr, vmSizePtr int32) int32
	GetEnv(kAddr, kSize, vmAddrPtr, vmSizePtr int32) int32
	SendMqttMsg(topicAddr, topicSize, msgAddr, msgSize int32) int32
}

type Cache added in v1.0.0

type Cache struct {
	Mode   enums.CacheMode `json:"mode"`
	Prefix string          `json:"prefix,omitempty"`
}

func DefaultCache added in v1.0.0

func DefaultCache() *Cache

func (*Cache) ConfigType added in v1.0.0

func (c *Cache) ConfigType() enums.ConfigType

func (*Cache) NewKVStore added in v1.0.0

func (c *Cache) NewKVStore(ctx context.Context) KVStore

TODO use KVStore as a member and impl Cache.Init

func (*Cache) WithContext added in v1.0.0

func (c *Cache) WithContext(ctx context.Context) context.Context

type ChainClient added in v1.0.0

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

func ChainClientFromContext added in v1.0.0

func ChainClientFromContext(ctx context.Context) (*ChainClient, bool)

func MustChainClientFromContext added in v1.0.0

func MustChainClientFromContext(ctx context.Context) *ChainClient

func NewChainClient added in v1.0.0

func NewChainClient(ctx context.Context, ops []models.Operator, p *models.ProjectOperator) *ChainClient

func (*ChainClient) CallContract added in v1.0.0

func (c *ChainClient) CallContract(chainID uint32, toStr, dataStr string) ([]byte, error)

func (*ChainClient) SendTX added in v1.0.0

func (c *ChainClient) SendTX(chainID uint32, toStr, valueStr, dataStr string) (string, error)

func (*ChainClient) SendTXWithOperator added in v1.1.0

func (c *ChainClient) SendTXWithOperator(chainID uint32, toStr, valueStr, dataStr, operatorName string) (string, error)

type Column added in v1.1.0

type Column struct {
	// Name column name
	Name string `json:"name"`
	// Constrains column constrains
	Constrains Constrains `json:"constrains"`
}

func (*Column) Build added in v1.1.0

func (c *Column) Build() *builder.Column

func (Column) Datatype added in v1.1.0

func (c Column) Datatype(t enums.WasmDBDatatype) string

type Configuration added in v1.0.0

type Configuration interface {
	ConfigType() enums.ConfigType
	WithContext(context.Context) context.Context
}

func NewConfigurationByType added in v1.0.0

func NewConfigurationByType(t enums.ConfigType) (Configuration, error)

type ConfigurationWithInit added in v1.1.0

type ConfigurationWithInit interface {
	Configuration
	types.ValidatedInitializerWith
}

ConfigurationWithInit support recursive initialize

type ConfigurationWithUninit added in v1.1.0

type ConfigurationWithUninit interface {
	Configuration
	Uninit(context.Context) error
}

ConfigurationWithUninit support recursive uninitialize

type Constrains added in v1.1.0

type Constrains struct {
	Datatype      enums.WasmDBDatatype `json:"datatype"`
	Length        uint64               `json:"length,omitempty"`
	Decimal       uint64               `json:"decimal,omitempty"`
	Default       *string              `json:"default,omitempty"`
	Null          bool                 `json:"null,omitempty"`
	AutoIncrement bool                 `json:"autoincrement,omitempty"`
	Desc          string               `json:"desc,omitempty"`
}

type ContextHandler

type ContextHandler interface {
	Name() string
	GetImports() ImportsHandler
	SetImports(ImportsHandler)
	GetExports() ExportsHandler
	GetInstance() Instance
	SetInstance(Instance)
}

type CtxChainClient added in v1.0.0

type CtxChainClient struct{}

type CtxCustomMetrics added in v1.1.0

type CtxCustomMetrics struct{}

type CtxEnv added in v1.0.0

type CtxEnv struct{}

type CtxKVStore added in v1.0.0

type CtxKVStore struct{}

type CtxLogger added in v1.0.0

type CtxLogger struct{}

type CtxMqttClient added in v1.1.0

type CtxMqttClient struct{}

type CtxRedisPrefix added in v1.0.0

type CtxRedisPrefix struct{}

type CtxRuntimeEventTypes added in v1.1.0

type CtxRuntimeEventTypes struct{}

type CtxRuntimeResource added in v1.0.0

type CtxRuntimeResource struct{}

type CtxSQLStore added in v1.0.0

type CtxSQLStore struct{}

type Database added in v1.1.0

type Database struct {
	// Name: database name, currently this should be assigned by host; if the
	// database resource can be assigned by project, then open this field.
	Name string `json:"-"`
	// Dialect database dialect, support postgres only now
	Dialect enums.WasmDBDialect `json:"dialect,omitempty,default=''"`
	// Schemas schema list
	Schemas []*Schema `json:"schemas,omitempty"`
	// contains filtered or unexported fields
}

func MustSQLStoreFromContext added in v1.0.0

func MustSQLStoreFromContext(ctx context.Context) *Database

func NewDatabase added in v1.1.0

func NewDatabase(name string) *Database

func SQLStoreFromContext added in v1.0.0

func SQLStoreFromContext(ctx context.Context) (*Database, bool)

func (*Database) ConfigType added in v1.1.0

func (d *Database) ConfigType() enums.ConfigType

func (*Database) Init added in v1.1.0

func (d *Database) Init(ctx context.Context) (err error)

func (*Database) WithContext added in v1.1.0

func (d *Database) WithContext(ctx context.Context) context.Context

func (*Database) WithDefaultSchema added in v1.1.0

func (d *Database) WithDefaultSchema() (sqlx.DBExecutor, error)

func (*Database) WithSchema added in v1.1.0

func (d *Database) WithSchema(name string) (db sqlx.DBExecutor, err error)

type Env added in v1.0.0

type Env struct {
	Env [][2]string `json:"env"`
	// contains filtered or unexported fields
}

func EnvFromContext added in v1.0.0

func EnvFromContext(ctx context.Context) (*Env, bool)

func MustEnvFromContext added in v1.0.0

func MustEnvFromContext(ctx context.Context) *Env

func (*Env) ConfigType added in v1.0.0

func (env *Env) ConfigType() enums.ConfigType

func (*Env) Get added in v1.0.0

func (env *Env) Get(k string) (v string, exists bool)

func (*Env) Init added in v1.1.0

func (env *Env) Init(ctx context.Context) (err error)

func (*Env) Key added in v1.1.0

func (env *Env) Key(k string) string

func (*Env) Uninit added in v1.1.0

func (env *Env) Uninit(_ context.Context) error

func (*Env) WithContext added in v1.0.0

func (env *Env) WithContext(ctx context.Context) context.Context

type EventConsumer

type EventConsumer interface {
	HandleEvent(ctx context.Context, handler, eventType string, payload []byte) *EventHandleResult
}

type EventHandleResult

type EventHandleResult struct {
	InstanceID string           `json:"instanceID"`
	Rsp        []byte           `json:"-"`
	Code       ResultStatusCode `json:"code"`
	ErrMsg     string           `json:"errMsg"`
}

type ExportsHandler

type ExportsHandler interface {
	Start()
	Alloc()
	Free()
}

type Handler

type Handler interface {
	Name() string
	Call(context.Context, ...interface{})
}

type ImportsHandler

type ImportsHandler interface {
	GetDB(keyAddr, keySize, valAddr, valSize uint32) (code int32)
	SetDB()
	GetData()
	SetData()
	Log(level uint32)
}

type Instance

type Instance interface {
	ID() string
	Start(context.Context) error
	Stop(context.Context) error
	State() enums.InstanceState

	EventConsumer
}

type InstanceState

type InstanceState = enums.InstanceState

type KVStore

type KVStore interface {
	Get(string) ([]byte, error)
	Set(key string, value []byte) error
}

func KVStoreFromContext added in v1.0.0

func KVStoreFromContext(ctx context.Context) (KVStore, bool)

func MustKVStoreFromContext added in v1.0.0

func MustKVStoreFromContext(ctx context.Context) KVStore

type Key added in v1.1.0

type Key struct {
	Name        string   `json:"name,omitempty"`
	Method      string   `json:"method,omitempty"`
	IsUnique    bool     `json:"isUnique,omitempty"`
	ColumnNames []string `json:"columnNames"`
	Expr        string   `json:"expr,omitempty"`
}

func (*Key) Build added in v1.1.0

func (k *Key) Build(tblName string) *builder.Key

type Memory

type Memory interface {
	Read(context.Context, uint32, uint32) ([]byte, error)
	Write(context.Context, []byte)
}

type Module

type Module interface {
	Init()
	NewInstance() Instance
	GetABI() []string
}

type MqttClient added in v1.1.0

type MqttClient struct {
	*mqtt.Client
}

func DefaultMQClient added in v1.1.0

func DefaultMQClient() *MqttClient

func MQTTClientFromContext added in v1.1.0

func MQTTClientFromContext(ctx context.Context) (*MqttClient, bool)

func MustMQTTClientFromContext added in v1.1.0

func MustMQTTClientFromContext(ctx context.Context) *MqttClient

func (*MqttClient) ConfigType added in v1.1.0

func (m *MqttClient) ConfigType() enums.ConfigType

func (*MqttClient) WithContext added in v1.1.0

func (m *MqttClient) WithContext(ctx context.Context) context.Context

type ResultStatusCode

type ResultStatusCode int32

ResultStatusCode wasm call result code

const (
	ResultStatusCode_OK ResultStatusCode = iota
	ResultStatusCode_UnexportedHandler
	ResultStatusCode_ResourceNotFound
	ResultStatusCode_ImportNotFound
	ResultStatusCode_ImportCallFailed
	ResultStatusCode_TransDataToVMFailed
	ResultStatusCode_TransDataFromVMFailed
	ResultStatusCode_HostInternal
	ResultStatusCode_EnvKeyNotFound
	ResultStatusCode_NoDBContext

	// TODO following result status
	ResultStatusCode_Failed = -1 // reserved for wasm invoke failed
)

type SQLStore added in v1.0.0

type SQLStore interface {
	sqlx.SqlExecutor
}

type Schema added in v1.0.0

type Schema struct {
	// Name: schema name, use postgres driver, default schema is `public`
	Name string `json:"schema,omitempty,default='public'"`
	// Tables: tables define
	Tables []*Table `json:"tables,omitempty"`
}

type Table added in v1.1.0

type Table struct {
	// Name table name
	Name string `json:"name"`
	// Desc table description
	Desc string `json:"desc,omitempty"`
	// Cols table column define
	Cols []*Column `json:"cols"`
	// Keys table index or primary define
	Keys []*Key `json:"keys"`
}

func (*Table) Build added in v1.1.0

func (t *Table) Build() *builder.Table

type VM

type VM interface {
	Name() string
	Init()
	NewModule(code []byte) Module
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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