Help us shape the future of Go! Take the 2026 Go Developer Survey

tigerbeetle_go

package module
v0.17.9 Latest Latest
Warning

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

Go to latest
Published: Jul 6, 2026 License: Apache-2.0 Imports: 14 Imported by: 8

README

tigerbeetle-go

This repo has been automatically generated from tigerbeetle/tigerbeetle@cc1c06a924e49b11089c521b2209d34c92caaf18 to keep binary blobs out of the monorepo.

Please see https://github.com/tigerbeetle/tigerbeetle/tree/main/src/clients/go for documentation and contributions.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnexpected           = errors.New("unexpected internal error")
	ErrOutOfMemory          = errors.New("internal client ran out of memory")
	ErrSystemResources      = errors.New("internal client ran out of system resources")
	ErrNetworkSubsystem     = errors.New("internal client had unexpected networking issues")
	ErrAddressLimitExceeded = errors.New("too many addresses provided")
	ErrInvalidAddress       = errors.New("invalid client cluster address")
	ErrClientEvicted        = errors.New("client was evicted")
	ErrClientReleaseTooLow  = errors.New("client was evicted: release too old")
	ErrClientReleaseTooHigh = errors.New("client was evicted: release too new")
	ErrClientClosed         = errors.New("client was closed")
	ErrInvalidOperation     = errors.New("internal operation provided was invalid")
	ErrTooMuchData          = errors.New("too much data was sent or requested in this batch")
)
View Source
var AmountMax = BytesToUint128([16]byte{
	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
})

Functions

This section is empty.

Types

type Account added in v0.17.0

type Account struct {
	ID             Uint128
	DebitsPending  Uint128
	DebitsPosted   Uint128
	CreditsPending Uint128
	CreditsPosted  Uint128
	UserData128    Uint128
	UserData64     uint64
	UserData32     uint32
	Reserved       uint32
	Ledger         uint32
	Code           uint16
	Flags          uint16
	Timestamp      uint64
}

func (Account) AccountFlags added in v0.17.0

func (o Account) AccountFlags() AccountFlags

type AccountBalance added in v0.17.0

type AccountBalance struct {
	DebitsPending  Uint128
	DebitsPosted   Uint128
	CreditsPending Uint128
	CreditsPosted  Uint128
	Timestamp      uint64
	Reserved       [56]uint8
}

type AccountFilter added in v0.17.0

type AccountFilter struct {
	AccountID    Uint128
	UserData128  Uint128
	UserData64   uint64
	UserData32   uint32
	Code         uint16
	Reserved     [58]uint8
	TimestampMin uint64
	TimestampMax uint64
	Limit        uint32
	Flags        uint32
}

func (AccountFilter) AccountFilterFlags added in v0.17.0

func (o AccountFilter) AccountFilterFlags() AccountFilterFlags

type AccountFilterFlags added in v0.17.0

type AccountFilterFlags struct {
	Debits   bool
	Credits  bool
	Reversed bool
}

func (AccountFilterFlags) ToUint32 added in v0.17.0

func (f AccountFilterFlags) ToUint32() uint32

type AccountFlags added in v0.17.0

type AccountFlags struct {
	Linked                     bool
	DebitsMustNotExceedCredits bool
	CreditsMustNotExceedDebits bool
	History                    bool
	Imported                   bool
	Closed                     bool
}

func (AccountFlags) ToUint16 added in v0.17.0

func (f AccountFlags) ToUint16() uint16

type ChangeEvent added in v0.17.0

type ChangeEvent struct {
	TransferID                  Uint128
	TransferAmount              Uint128
	TransferPendingID           Uint128
	TransferUserData128         Uint128
	TransferUserData64          uint64
	TransferUserData32          uint32
	TransferTimeout             uint32
	TransferCode                uint16
	TransferFlags               uint16
	Ledger                      uint32
	Type                        ChangeEventType
	Reserved                    [39]uint8
	DebitAccountID              Uint128
	DebitAccountDebitsPending   Uint128
	DebitAccountDebitsPosted    Uint128
	DebitAccountCreditsPending  Uint128
	DebitAccountCreditsPosted   Uint128
	DebitAccountUserData128     Uint128
	DebitAccountUserData64      uint64
	DebitAccountUserData32      uint32
	DebitAccountCode            uint16
	DebitAccountFlags           uint16
	CreditAccountID             Uint128
	CreditAccountDebitsPending  Uint128
	CreditAccountDebitsPosted   Uint128
	CreditAccountCreditsPending Uint128
	CreditAccountCreditsPosted  Uint128
	CreditAccountUserData128    Uint128
	CreditAccountUserData64     uint64
	CreditAccountUserData32     uint32
	CreditAccountCode           uint16
	CreditAccountFlags          uint16
	Timestamp                   uint64
	TransferTimestamp           uint64
	DebitAccountTimestamp       uint64
	CreditAccountTimestamp      uint64
}

type ChangeEventType added in v0.17.0

type ChangeEventType uint8
const (
	ChangeEventSinglePhase     ChangeEventType = 0
	ChangeEventTwoPhasePending ChangeEventType = 1
	ChangeEventTwoPhasePosted  ChangeEventType = 2
	ChangeEventTwoPhaseVoided  ChangeEventType = 3
	ChangeEventTwoPhaseExpired ChangeEventType = 4
)

func (ChangeEventType) String added in v0.17.0

func (i ChangeEventType) String() string

type ChangeEventsFilter added in v0.17.0

type ChangeEventsFilter struct {
	TimestampMin uint64
	TimestampMax uint64
	Limit        uint32
	Reserved     [44]uint8
}

type Client

type Client interface {
	CreateAccounts(accounts []Account) ([]CreateAccountResult, error)
	CreateTransfers(transfers []Transfer) ([]CreateTransferResult, error)
	LookupAccounts(accountIDs []Uint128) ([]Account, error)
	LookupTransfers(transferIDs []Uint128) ([]Transfer, error)
	GetAccountTransfers(filter AccountFilter) ([]Transfer, error)
	GetAccountBalances(filter AccountFilter) ([]AccountBalance, error)
	QueryAccounts(filter QueryFilter) ([]Account, error)
	QueryTransfers(filter QueryFilter) ([]Transfer, error)

	// Experimental: GetChangeEvents API is undocumented.
	GetChangeEvents(filter ChangeEventsFilter) ([]ChangeEvent, error)

	Nop() error
	Close()
}

func NewClient

func NewClient(
	clusterID Uint128,
	addresses []string,
) (Client, error)

type CreateAccountResult added in v0.17.0

type CreateAccountResult struct {
	Timestamp uint64
	Status    CreateAccountStatus
	Reserved  uint32
}

type CreateAccountStatus added in v0.17.0

type CreateAccountStatus uint32
const (
	AccountCreated                              CreateAccountStatus = 0xFFFFFFFF
	AccountLinkedEventFailed                    CreateAccountStatus = 1
	AccountLinkedEventChainOpen                 CreateAccountStatus = 2
	AccountImportedEventExpected                CreateAccountStatus = 22
	AccountImportedEventNotExpected             CreateAccountStatus = 23
	AccountTimestampMustBeZero                  CreateAccountStatus = 3
	AccountImportedEventTimestampOutOfRange     CreateAccountStatus = 24
	AccountImportedEventTimestampMustNotAdvance CreateAccountStatus = 25
	AccountReservedField                        CreateAccountStatus = 4
	AccountReservedFlag                         CreateAccountStatus = 5
	AccountIDMustNotBeZero                      CreateAccountStatus = 6
	AccountIDMustNotBeIntMax                    CreateAccountStatus = 7
	AccountExistsWithDifferentFlags             CreateAccountStatus = 15
	AccountExistsWithDifferentUserData128       CreateAccountStatus = 16
	AccountExistsWithDifferentUserData64        CreateAccountStatus = 17
	AccountExistsWithDifferentUserData32        CreateAccountStatus = 18
	AccountExistsWithDifferentLedger            CreateAccountStatus = 19
	AccountExistsWithDifferentCode              CreateAccountStatus = 20
	AccountExists                               CreateAccountStatus = 21
	AccountFlagsAreMutuallyExclusive            CreateAccountStatus = 8
	AccountDebitsPendingMustBeZero              CreateAccountStatus = 9
	AccountDebitsPostedMustBeZero               CreateAccountStatus = 10
	AccountCreditsPendingMustBeZero             CreateAccountStatus = 11
	AccountCreditsPostedMustBeZero              CreateAccountStatus = 12
	AccountLedgerMustNotBeZero                  CreateAccountStatus = 13
	AccountCodeMustNotBeZero                    CreateAccountStatus = 14
	AccountImportedEventTimestampMustNotRegress CreateAccountStatus = 26
)

func (CreateAccountStatus) String added in v0.17.0

func (i CreateAccountStatus) String() string

type CreateTransferResult added in v0.17.0

type CreateTransferResult struct {
	Timestamp uint64
	Status    CreateTransferStatus
	Reserved  uint32
}

type CreateTransferStatus added in v0.17.0

type CreateTransferStatus uint32
const (
	TransferCreated                                         CreateTransferStatus = 0xFFFFFFFF
	TransferLinkedEventFailed                               CreateTransferStatus = 1
	TransferLinkedEventChainOpen                            CreateTransferStatus = 2
	TransferImportedEventExpected                           CreateTransferStatus = 56
	TransferImportedEventNotExpected                        CreateTransferStatus = 57
	TransferTimestampMustBeZero                             CreateTransferStatus = 3
	TransferImportedEventTimestampOutOfRange                CreateTransferStatus = 58
	TransferImportedEventTimestampMustNotAdvance            CreateTransferStatus = 59
	TransferReservedFlag                                    CreateTransferStatus = 4
	TransferIDMustNotBeZero                                 CreateTransferStatus = 5
	TransferIDMustNotBeIntMax                               CreateTransferStatus = 6
	TransferExistsWithDifferentFlags                        CreateTransferStatus = 36
	TransferExistsWithDifferentPendingID                    CreateTransferStatus = 40
	TransferExistsWithDifferentTimeout                      CreateTransferStatus = 44
	TransferExistsWithDifferentDebitAccountID               CreateTransferStatus = 37
	TransferExistsWithDifferentCreditAccountID              CreateTransferStatus = 38
	TransferExistsWithDifferentAmount                       CreateTransferStatus = 39
	TransferExistsWithDifferentUserData128                  CreateTransferStatus = 41
	TransferExistsWithDifferentUserData64                   CreateTransferStatus = 42
	TransferExistsWithDifferentUserData32                   CreateTransferStatus = 43
	TransferExistsWithDifferentLedger                       CreateTransferStatus = 67
	TransferExistsWithDifferentCode                         CreateTransferStatus = 45
	TransferExists                                          CreateTransferStatus = 46
	TransferIDAlreadyFailed                                 CreateTransferStatus = 68
	TransferFlagsAreMutuallyExclusive                       CreateTransferStatus = 7
	TransferDebitAccountIDMustNotBeZero                     CreateTransferStatus = 8
	TransferDebitAccountIDMustNotBeIntMax                   CreateTransferStatus = 9
	TransferCreditAccountIDMustNotBeZero                    CreateTransferStatus = 10
	TransferCreditAccountIDMustNotBeIntMax                  CreateTransferStatus = 11
	TransferAccountsMustBeDifferent                         CreateTransferStatus = 12
	TransferPendingIDMustBeZero                             CreateTransferStatus = 13
	TransferPendingIDMustNotBeZero                          CreateTransferStatus = 14
	TransferPendingIDMustNotBeIntMax                        CreateTransferStatus = 15
	TransferPendingIDMustBeDifferent                        CreateTransferStatus = 16
	TransferTimeoutReservedForPendingTransfer               CreateTransferStatus = 17
	TransferClosingTransferMustBePending                    CreateTransferStatus = 64
	TransferLedgerMustNotBeZero                             CreateTransferStatus = 19
	TransferCodeMustNotBeZero                               CreateTransferStatus = 20
	TransferDebitAccountNotFound                            CreateTransferStatus = 21
	TransferCreditAccountNotFound                           CreateTransferStatus = 22
	TransferAccountsMustHaveTheSameLedger                   CreateTransferStatus = 23
	TransferTransferMustHaveTheSameLedgerAsAccounts         CreateTransferStatus = 24
	TransferPendingTransferNotFound                         CreateTransferStatus = 25
	TransferPendingTransferNotPending                       CreateTransferStatus = 26
	TransferPendingTransferHasDifferentDebitAccountID       CreateTransferStatus = 27
	TransferPendingTransferHasDifferentCreditAccountID      CreateTransferStatus = 28
	TransferPendingTransferHasDifferentLedger               CreateTransferStatus = 29
	TransferPendingTransferHasDifferentCode                 CreateTransferStatus = 30
	TransferExceedsPendingTransferAmount                    CreateTransferStatus = 31
	TransferPendingTransferHasDifferentAmount               CreateTransferStatus = 32
	TransferPendingTransferAlreadyPosted                    CreateTransferStatus = 33
	TransferPendingTransferAlreadyVoided                    CreateTransferStatus = 34
	TransferPendingTransferExpired                          CreateTransferStatus = 35
	TransferImportedEventTimestampMustNotRegress            CreateTransferStatus = 60
	TransferImportedEventTimestampMustPostdateDebitAccount  CreateTransferStatus = 61
	TransferImportedEventTimestampMustPostdateCreditAccount CreateTransferStatus = 62
	TransferImportedEventTimeoutMustBeZero                  CreateTransferStatus = 63
	TransferDebitAccountAlreadyClosed                       CreateTransferStatus = 65
	TransferCreditAccountAlreadyClosed                      CreateTransferStatus = 66
	TransferOverflowsDebitsPending                          CreateTransferStatus = 47
	TransferOverflowsCreditsPending                         CreateTransferStatus = 48
	TransferOverflowsDebitsPosted                           CreateTransferStatus = 49
	TransferOverflowsCreditsPosted                          CreateTransferStatus = 50
	TransferOverflowsDebits                                 CreateTransferStatus = 51
	TransferOverflowsCredits                                CreateTransferStatus = 52
	TransferOverflowsTimeout                                CreateTransferStatus = 53
	TransferExceedsCredits                                  CreateTransferStatus = 54
	TransferExceedsDebits                                   CreateTransferStatus = 55
)

func (CreateTransferStatus) String added in v0.17.0

func (i CreateTransferStatus) String() string

type QueryFilter added in v0.17.0

type QueryFilter struct {
	UserData128  Uint128
	UserData64   uint64
	UserData32   uint32
	Ledger       uint32
	Code         uint16
	Reserved     [6]uint8
	TimestampMin uint64
	TimestampMax uint64
	Limit        uint32
	Flags        uint32
}

func (QueryFilter) QueryFilterFlags added in v0.17.0

func (o QueryFilter) QueryFilterFlags() QueryFilterFlags

type QueryFilterFlags added in v0.17.0

type QueryFilterFlags struct {
	Reversed bool
}

func (QueryFilterFlags) ToUint32 added in v0.17.0

func (f QueryFilterFlags) ToUint32() uint32

type Transfer added in v0.17.0

type Transfer struct {
	ID              Uint128
	DebitAccountID  Uint128
	CreditAccountID Uint128
	Amount          Uint128
	PendingID       Uint128
	UserData128     Uint128
	UserData64      uint64
	UserData32      uint32
	Timeout         uint32
	Ledger          uint32
	Code            uint16
	Flags           uint16
	Timestamp       uint64
}

func (Transfer) TransferFlags added in v0.17.0

func (o Transfer) TransferFlags() TransferFlags

type TransferFlags added in v0.17.0

type TransferFlags struct {
	Linked              bool
	Pending             bool
	PostPendingTransfer bool
	VoidPendingTransfer bool
	BalancingDebit      bool
	BalancingCredit     bool
	ClosingDebit        bool
	ClosingCredit       bool
	Imported            bool
}

func (TransferFlags) ToUint16 added in v0.17.0

func (f TransferFlags) ToUint16() uint16

type Uint128 added in v0.17.0

type Uint128 C.tb_uint128_t

func BigIntToUint128 added in v0.17.0

func BigIntToUint128(value *big.Int) Uint128

BigIntToUint128 converts a math/big.Int to a Uint128.

func BytesToUint128 added in v0.17.0

func BytesToUint128(value [16]byte) Uint128

BytesToUint128 converts a raw [16]byte value to Uint128.

func HexStringToUint128 added in v0.17.0

func HexStringToUint128(value string) (Uint128, error)

HexStringToUint128 converts a hex-encoded integer to a Uint128.

func ID added in v0.17.0

func ID() Uint128

Generates a Universally Unique and Sortable Identifier based on https://github.com/ulid/spec. Uint128 returned are guaranteed to be monotonically increasing when interpreted as little-endian. `ID()` is safe to call from multiple goroutines with monotonicity being sequentially consistent.

Panics if it is unable to generated random bytes. Panics if the timestamp is outside of a reasonable bounds.

func ToUint128 added in v0.17.0

func ToUint128(value uint64) Uint128

ToUint128 converts a integer to a Uint128.

func (Uint128) BigInt added in v0.17.0

func (value Uint128) BigInt() *big.Int

func (Uint128) Bytes added in v0.17.0

func (value Uint128) Bytes() [16]byte

func (Uint128) String added in v0.17.0

func (value Uint128) String() string

func (Uint128) Uint64 added in v0.17.0

func (value Uint128) Uint64() (uint64, uint64)

Returns two 64-bit integers representing the least significant (first 8 bytes) value and the most significant (last 8 bytes) value of the 128-bit integer.

Directories

Path Synopsis
Adds reference to sub-folders containing the external (non-Go) files required to build the TigerBeetle client.
Adds reference to sub-folders containing the external (non-Go) files required to build the TigerBeetle client.

Jump to

Keyboard shortcuts

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