client

package
v1.1.3 Latest Latest
Warning

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

Go to latest
Published: May 8, 2026 License: GPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultEnvNATSPrefix = "NATS"

	DefaultTimeout = time.Millisecond * 100
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

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

func ConnectClient added in v1.1.0

func ConnectClient(ctx context.Context, config *Config, logger Logger) (*Client, error)

ConnectClient creates a NATS client from explicit config.

func Default deprecated

func Default(ctx context.Context, logger Logger, prefixes ...string) (*Client, error)

Default creates a NATS client from environment variables.

Deprecated: use ConnectClient with explicit config or Connect with core-owned options.

func NewClient deprecated

func NewClient(
	ctx context.Context,
	conn *nats.Conn,
	cfg *Config,
	logger Logger,
) (*Client, error)

NewClient creates the legacy NATS SDK-shaped client.

Deprecated: use Connect and CoreClient for new connection code.

func (*Client) Close

func (c *Client) Close() error

func (*Client) Config

func (c *Client) Config() *Config

func (*Client) Conn

func (c *Client) Conn() *nats.Conn

Conn returns the legacy NATS SDK connection.

func (*Client) Context

func (c *Client) Context() context.Context

func (*Client) Logger

func (c *Client) Logger() Logger

func (*Client) Meter

func (c *Client) Meter() metric.Meter

func (*Client) QueueSubscribeSync

func (c *Client) QueueSubscribeSync(subject, queue string) (*nats.Subscription, error)

QueueSubscribeSync exposes the legacy NATS subscription type.

func (*Client) WithMeter

func (c *Client) WithMeter(m metric.Meter)

type Config

type Config struct {
	*nats.StreamConfig
	Addr                 string        `env:"_ADDR" envDefault:"nats://127.0.0.1:4222"`
	Username             string        `env:"_USERNAME" envDefault:""`
	Password             string        `env:"_PASSWORD" envDefault:""`
	Seed                 string        `env:"_SEED" envDefault:""`
	DrainTimeout         time.Duration `env:"_DRAIN_TIMEOUT" envDefault:"1s"`
	MaxReconnects        int           `env:"_MAX_RECONNECTS" envDefault:"10"`
	ReconnectWait        time.Duration `env:"_RECONNECT_WAIT" envDefault:"1s"`
	MaxAckPending        int           `env:"_MAX_ACK_PENDING" envDefault:"0"`
	RetryOnFailedConnect bool          `env:"_RETRY_ON_FAILED_CONNECT" envDefault:"true"`
	ManualAck            bool          `env:"_MANUAL_ACK" envDefault:"false"`
	ConcurrentSize       int           `env:"_CONCURRENT_SIZE" envDefault:"10"`
	MaxConcurrentSize    uint64        `env:"_MAX_CONCURRENT_SIZE" envDefault:"1024"`
	ReadTimeout          time.Duration `env:"_READ_TIMEOUT" envDefault:"500ms"`
	IdleTimeout          time.Duration `env:"_IDLE_TIMEOUT" envDefault:"5s"`
}

func GetNATSConnectionConfigFromEnv

func GetNATSConnectionConfigFromEnv(prefixes ...string) (*Config, error)

func (*Config) GetConcurrentSize

func (cfg *Config) GetConcurrentSize() int

func (*Config) GetOptions

func (cfg *Config) GetOptions() []nats.Option

func (*Config) GetOptionsStrict added in v1.1.0

func (cfg *Config) GetOptionsStrict() ([]nats.Option, error)

func (*Config) GetReadTimeout

func (cfg *Config) GetReadTimeout() time.Duration

type ConnectOptions added in v1.1.0

type ConnectOptions struct {
	Addr                 string
	Username             string
	Password             string
	Seed                 string
	DrainTimeout         time.Duration
	MaxReconnects        int
	ReconnectWait        time.Duration
	MaxAckPending        int
	RetryOnFailedConnect bool
	ManualAck            bool
	ConcurrentSize       int
	MaxConcurrentSize    uint64
	ReadTimeout          time.Duration
	IdleTimeout          time.Duration
}

ConnectOptions is the core-owned input for creating a NATS connection.

type ConnectionResult added in v1.1.0

type ConnectionResult struct {
	Connected bool
}

ConnectionResult is the core-owned result for NATS connection operations.

type CoreClient added in v1.1.0

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

CoreClient wraps the legacy NATS client behind core-owned connection operations.

func Connect added in v1.1.0

func Connect(ctx context.Context, options ConnectOptions, logger Logger) (*CoreClient, error)

Connect creates a NATS client from core-owned options.

func (*CoreClient) Close added in v1.1.0

func (c *CoreClient) Close() error

Close drains and closes the NATS connection.

func (*CoreClient) Status added in v1.1.0

func (c *CoreClient) Status() ConnectionResult

Status reports whether the connection is active.

type Logger

type Logger interface {
	Error(msg string, args ...any)
	Info(msg string, args ...any)
	Debug(msg string, args ...any)
}

type StubLogger

type StubLogger struct{}

func (StubLogger) Debug

func (l StubLogger) Debug(_ string, _ ...any)

func (StubLogger) Error

func (l StubLogger) Error(_ string, _ ...any)

func (StubLogger) Info

func (l StubLogger) Info(_ string, _ ...any)

Directories

Path Synopsis
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.

Jump to

Keyboard shortcuts

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