nats

package
v0.5.0-test.7 Latest Latest
Warning

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

Go to latest
Published: Sep 29, 2025 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const ReplicaClientType = "nats"

ReplicaClientType is the client type for this package.

Variables

This section is empty.

Functions

This section is empty.

Types

type ReplicaClient

type ReplicaClient struct {

	// Configuration
	URL        string   // NATS server URL
	BucketName string   // Object store bucket name
	Path       string   // Base path for LTX files within the bucket
	JWT        string   // JWT token for authentication
	Seed       string   // Seed for JWT authentication
	Creds      string   // Credentials file path
	NKey       string   // NKey for authentication
	Username   string   // Username for authentication
	Password   string   // Password for authentication
	Token      string   // Token for authentication
	TLS        bool     // Enable TLS
	RootCAs    []string // Root CA certificates
	ClientCert string   // Client certificate file path
	ClientKey  string   // Client key file path

	// Connection options
	MaxReconnects    int                          // Maximum reconnection attempts (-1 for unlimited)
	ReconnectWait    time.Duration                // Wait time between reconnection attempts
	ReconnectJitter  time.Duration                // Random jitter for reconnection
	Timeout          time.Duration                // Connection timeout
	PingInterval     time.Duration                // Ping interval
	MaxPingsOut      int                          // Maximum number of pings without response
	ReconnectBufSize int                          // Reconnection buffer size
	UserJWT          func() (string, error)       // JWT callback
	SigCB            func([]byte) ([]byte, error) // Signature callback
	// contains filtered or unexported fields
}

ReplicaClient is a client for writing LTX files to NATS JetStream Object Store.

func NewReplicaClient

func NewReplicaClient() *ReplicaClient

NewReplicaClient returns a new instance of ReplicaClient.

func (*ReplicaClient) Close

func (c *ReplicaClient) Close() error

Close closes the NATS connection.

func (*ReplicaClient) DeleteAll

func (c *ReplicaClient) DeleteAll(ctx context.Context) error

DeleteAll deletes all files in the object store.

func (*ReplicaClient) DeleteLTXFiles

func (c *ReplicaClient) DeleteLTXFiles(ctx context.Context, a []*ltx.FileInfo) error

DeleteLTXFiles deletes one or more LTX files.

func (*ReplicaClient) Init

func (c *ReplicaClient) Init(ctx context.Context) error

Init initializes the connection to NATS JetStream. No-op if already initialized.

func (*ReplicaClient) LTXFiles

func (c *ReplicaClient) LTXFiles(ctx context.Context, level int, seek ltx.TXID) (ltx.FileIterator, error)

LTXFiles returns an iterator of all LTX files on the replica for a given level.

func (*ReplicaClient) OpenLTXFile

func (c *ReplicaClient) OpenLTXFile(ctx context.Context, level int, minTXID, maxTXID ltx.TXID, offset, size int64) (io.ReadCloser, error)

OpenLTXFile returns a reader that contains an LTX file at a given TXID range.

func (*ReplicaClient) Type

func (c *ReplicaClient) Type() string

Type returns "nats" as the client type.

func (*ReplicaClient) WriteLTXFile

func (c *ReplicaClient) WriteLTXFile(ctx context.Context, level int, minTXID, maxTXID ltx.TXID, r io.Reader) (*ltx.FileInfo, error)

WriteLTXFile writes an LTX file to the replica.

Jump to

Keyboard shortcuts

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