Documentation
¶
Overview ¶
Package frogodb provides FrogoDB connection and record helpers.
New code should use explicit connection ownership and core-owned operation shapes:
import "github.com/InsideGallery/core/db/frogodb"
store, err := frogodb.NewDatabase(frogodb.DefaultConnectionConfig("localhost:3000"))
Prefer Database, DatabaseClient, Key, PutOptions, GetOptions, DeleteOptions, Record, RecordResult, and Result when consumer code should not depend directly on the FrogoDB client package.
Compatibility: NewConnection, NewConnectionFromEnv, Set, Get, and Default expose the FrogoDB SDK-shaped client for advanced callers and existing low-level integration points.
Index ¶
- Constants
- Variables
- func Default(names ...string) (*fdbclient.Client, error)deprecated
- func Get(name string) (*fdbclient.Client, error)deprecated
- func NewConnection(config *ConnectionConfig) (*fdbclient.Client, error)
- func NewConnectionFromEnv(prefix string) (*fdbclient.Client, error)
- func Set(name string, client *fdbclient.Client)deprecated
- type ConnectionConfig
- type ConnectionRegistry
- type CountOptions
- type Database
- type DatabaseClient
- func (c *DatabaseClient) Client() *fdbclient.Client
- func (c *DatabaseClient) Close() error
- func (c *DatabaseClient) CountRecords(ctx context.Context, options CountOptions) (Result, error)
- func (c *DatabaseClient) DeleteRecord(ctx context.Context, options DeleteOptions) (Result, error)
- func (c *DatabaseClient) GetRecord(ctx context.Context, options GetOptions) (RecordResult, error)
- func (c *DatabaseClient) Ping(ctx context.Context) error
- func (c *DatabaseClient) PutRecord(ctx context.Context, options PutOptions) (Result, error)
- type DeleteOptions
- type GetOptions
- type Key
- type PutOptions
- type Record
- type RecordResult
- type Result
- type WriteOptions
Constants ¶
const (
// EnvPrefix is the default environment prefix for FrogoDB configuration.
EnvPrefix = "FDB"
)
Variables ¶
var ErrConnectionConfigIsNotSet = errors.New("connection config is not set")
ErrConnectionConfigIsNotSet reports that FrogoDB connection configuration is missing.
var ErrConnectionIsNotSet = errors.New("connection is not set")
ErrConnectionIsNotSet reports that no FrogoDB client is registered.
Functions ¶
func NewConnection ¶
func NewConnection(config *ConnectionConfig) (*fdbclient.Client, error)
NewConnection creates a FrogoDB client from explicit config.
func NewConnectionFromEnv ¶
NewConnectionFromEnv creates a FrogoDB client from an explicit environment prefix.
Types ¶
type ConnectionConfig ¶
type ConnectionConfig struct {
Seeds []string `env:"_SEEDS" envDefault:"localhost:3000" envSeparator:","`
TendInterval time.Duration `env:"_TEND_INTERVAL" envDefault:"10ms"`
ConnectionTimeout time.Duration `env:"_CONNECTION_TIMEOUT" envDefault:"5s"`
IdleTimeout time.Duration `env:"_IDLE_TIMEOUT" envDefault:"55s"`
PoolSizePerNode int `env:"_POOL_SIZE_PER_NODE" envDefault:"64"`
MaxConnsPerNode int `env:"_MAX_CONNS_PER_NODE" envDefault:"256"`
MaxErrorRate int `env:"_MAX_ERROR_RATE" envDefault:"100"`
ErrorRateWindow time.Duration `env:"_ERROR_RATE_WINDOW" envDefault:"1s"`
Multiplexing bool `env:"_MULTIPLEXING" envDefault:"false"`
MultiplexConnsPerNode int `env:"_MULTIPLEX_CONNS_PER_NODE" envDefault:"0"`
MultiplexMinConnsPerNode int `env:"_MULTIPLEX_MIN_CONNS_PER_NODE" envDefault:"0"`
}
ConnectionConfig contains FrogoDB client connection settings.
func DefaultConnectionConfig ¶
func DefaultConnectionConfig(seeds ...string) *ConnectionConfig
DefaultConnectionConfig returns FrogoDB connection defaults for the supplied seed addresses.
func GetConnectionConfigFromEnv ¶
func GetConnectionConfigFromEnv(prefix string) (*ConnectionConfig, error)
GetConnectionConfigFromEnv returns FrogoDB config from the supplied environment prefix.
type ConnectionRegistry ¶
type ConnectionRegistry struct {
// contains filtered or unexported fields
}
ConnectionRegistry owns FrogoDB clients for explicit application composition.
func NewConnectionRegistry ¶
func NewConnectionRegistry() *ConnectionRegistry
NewConnectionRegistry creates an isolated FrogoDB connection registry.
func (*ConnectionRegistry) Close ¶
func (r *ConnectionRegistry) Close() error
Close closes all clients stored in this registry and clears it.
func (*ConnectionRegistry) Default ¶
func (r *ConnectionRegistry) Default(name string, config *ConnectionConfig) (*fdbclient.Client, error)
Default returns or creates a registry-scoped FrogoDB client from explicit config.
type CountOptions ¶
CountOptions is the core-owned input for counting records.
type Database ¶
type Database interface {
Ping(ctx context.Context) error
PutRecord(ctx context.Context, options PutOptions) (Result, error)
GetRecord(ctx context.Context, options GetOptions) (RecordResult, error)
DeleteRecord(ctx context.Context, options DeleteOptions) (Result, error)
CountRecords(ctx context.Context, options CountOptions) (Result, error)
Close() error
}
Database is the core-owned FrogoDB contract for new consumers.
type DatabaseClient ¶
type DatabaseClient struct {
// contains filtered or unexported fields
}
DatabaseClient wraps the FrogoDB smart client behind core-owned operation inputs and results.
func DefaultDatabase ¶
func DefaultDatabase(names ...string) (*DatabaseClient, error)
DefaultDatabase returns the default FrogoDB client behind the core-owned DatabaseClient API.
func NewDatabase ¶
func NewDatabase(config *ConnectionConfig) (*DatabaseClient, error)
NewDatabase creates a FrogoDB database client from core-owned config.
func WrapClient ¶
func WrapClient(client *fdbclient.Client) *DatabaseClient
WrapClient adapts an existing FrogoDB client to DatabaseClient.
func (*DatabaseClient) Client ¶
func (c *DatabaseClient) Client() *fdbclient.Client
Client returns the wrapped FrogoDB smart client for advanced operations.
func (*DatabaseClient) Close ¶
func (c *DatabaseClient) Close() error
Close closes the FrogoDB client.
func (*DatabaseClient) CountRecords ¶
func (c *DatabaseClient) CountRecords(ctx context.Context, options CountOptions) (Result, error)
CountRecords counts records through a core-owned input and result shape.
func (*DatabaseClient) DeleteRecord ¶
func (c *DatabaseClient) DeleteRecord(ctx context.Context, options DeleteOptions) (Result, error)
DeleteRecord deletes a record through a core-owned input and result shape.
func (*DatabaseClient) GetRecord ¶
func (c *DatabaseClient) GetRecord(ctx context.Context, options GetOptions) (RecordResult, error)
GetRecord reads a record through a core-owned input and result shape.
func (*DatabaseClient) Ping ¶
func (c *DatabaseClient) Ping(ctx context.Context) error
Ping verifies FrogoDB connectivity.
func (*DatabaseClient) PutRecord ¶
func (c *DatabaseClient) PutRecord(ctx context.Context, options PutOptions) (Result, error)
PutRecord writes a record through a core-owned input and result shape.
type DeleteOptions ¶
type DeleteOptions struct {
Key Key
Write WriteOptions
}
DeleteOptions is the core-owned input for deleting a record.
type GetOptions ¶
GetOptions is the core-owned input for reading a record.
type PutOptions ¶
type PutOptions struct {
Key Key
Bins map[string]any
Write WriteOptions
}
PutOptions is the core-owned input for writing a record.
type RecordResult ¶
RecordResult reports a record lookup result.