Documentation ¶
Index ¶
- Constants
- type Lassie
- type LassieConfig
- type LassieOption
- func WithBitswapConcurrency(concurrency int) LassieOption
- func WithBitswapConcurrencyPerRetrieval(concurrency int) LassieOption
- func WithConcurrentSPRetrievals(maxConcurrentSPRtreievals uint) LassieOption
- func WithFinder(finder retriever.CandidateFinder) LassieOption
- func WithGlobalTimeout(timeout time.Duration) LassieOption
- func WithHost(host host.Host) LassieOption
- func WithLibp2pOpts(libp2pOptions ...libp2p.Option) LassieOption
- func WithProtocols(protocols []multicodec.Code) LassieOption
- func WithProviderAllowList(providerAllowList map[peer.ID]bool) LassieOption
- func WithProviderBlockList(providerBlockList map[peer.ID]bool) LassieOption
- func WithProviderTimeout(timeout time.Duration) LassieOption
Constants ¶
const DefaultBitswapConcurrency = 32
const DefaultBitswapConcurrencyPerRetrieval = 12
const DefaultProviderTimeout = 20 * time.Second
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Lassie ¶
type Lassie struct {
// contains filtered or unexported fields
}
Lassie represents a reusable retrieval client.
func NewLassie ¶
func NewLassie(ctx context.Context, opts ...LassieOption) (*Lassie, error)
NewLassie creates a new Lassie instance.
func NewLassieWithConfig ¶
func NewLassieWithConfig(ctx context.Context, cfg *LassieConfig) (*Lassie, error)
NewLassieWithConfig creates a new Lassie instance with a custom configuration.
func (*Lassie) Fetch ¶
func (l *Lassie) Fetch(ctx context.Context, request types.RetrievalRequest, eventsCb func(types.RetrievalEvent)) (*types.RetrievalStats, error)
func (*Lassie) RegisterSubscriber ¶
func (l *Lassie) RegisterSubscriber(subscriber types.RetrievalEventSubscriber) func()
RegisterSubscriber registers a subscriber to receive retrieval events. The returned function can be called to unregister the subscriber.
type LassieConfig ¶
type LassieConfig struct { Finder retriever.CandidateFinder Host host.Host ProviderTimeout time.Duration ConcurrentSPRetrievals uint GlobalTimeout time.Duration Libp2pOptions []libp2p.Option Protocols []multicodec.Code ProviderBlockList map[peer.ID]bool ProviderAllowList map[peer.ID]bool BitswapConcurrency int BitswapConcurrencyPerRetrieval int }
LassieConfig customizes the behavior of a Lassie instance.
func NewLassieConfig ¶ added in v0.13.0
func NewLassieConfig(opts ...LassieOption) *LassieConfig
NewLassieConfig creates a new LassieConfig instance with the given LassieOptions.
type LassieOption ¶
type LassieOption func(cfg *LassieConfig)
func WithBitswapConcurrency ¶ added in v0.8.0
func WithBitswapConcurrency(concurrency int) LassieOption
WithBitswapConcurrency allows you to specify a custom concurrency for bitswap retrievals across all parallel retrievals in the same Lassie instance. This is applied using a preloader during traversals. The default is 32.
func WithBitswapConcurrencyPerRetrieval ¶ added in v0.18.0
func WithBitswapConcurrencyPerRetrieval(concurrency int) LassieOption
WithBitswapConcurrencyPerRetrieval allows you to specify a custom concurrency for bitswap retrievals for each individual parallel retrieval. This is applied using a preloader during traversals. The default is 8.
func WithConcurrentSPRetrievals ¶ added in v0.4.6
func WithConcurrentSPRetrievals(maxConcurrentSPRtreievals uint) LassieOption
WithConcurrentSPRetrievals allows you to specify a custom number of concurrent retrievals from a single storage provider.
func WithFinder ¶
func WithFinder(finder retriever.CandidateFinder) LassieOption
WithFinder allows you to specify a custom candidate finder.
func WithGlobalTimeout ¶ added in v0.4.0
func WithGlobalTimeout(timeout time.Duration) LassieOption
WithGlobalTimeout allows you to specify a custom timeout for the entire retrieval process.
func WithHost ¶ added in v0.4.0
func WithHost(host host.Host) LassieOption
WithHost allows you to specify a custom libp2p host.
func WithLibp2pOpts ¶ added in v0.4.4
func WithLibp2pOpts(libp2pOptions ...libp2p.Option) LassieOption
WithLibp2pOpts allows you to specify custom libp2p options.
func WithProtocols ¶ added in v0.6.8
func WithProtocols(protocols []multicodec.Code) LassieOption
WithProtocols allows you to specify a custom set of protocols to use for retrieval.
func WithProviderAllowList ¶ added in v0.6.8
func WithProviderAllowList(providerAllowList map[peer.ID]bool) LassieOption
WithProviderAllowList allows you to specify a custom set of providers to allow fetching from. If this is not set, all providers will be allowed unless they are in the block list.
func WithProviderBlockList ¶ added in v0.6.8
func WithProviderBlockList(providerBlockList map[peer.ID]bool) LassieOption
WithProviderBlockList allows you to specify a custom provider block list.
func WithProviderTimeout ¶ added in v0.4.0
func WithProviderTimeout(timeout time.Duration) LassieOption
WithProviderTimeout allows you to specify a custom timeout for retrieving data from a provider. Beyond this limit, when no data has been received, the retrieval will fail.