aries

package
v0.1.6-0...-5c25bcb Latest Latest
Warning

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

Go to latest
Published: Feb 1, 2021 License: Apache-2.0 Imports: 42 Imported by: 0

Documentation

Overview

Package aries provides a pluggable dependency framework, where implementors can customize primitives via Service Provider Interfaces (SPIs). The framework comes with a "batteries included" model where default primitives are included. The framework holds a context that can be used to create aries clients.

Usage:

// create the framework
framework := aries.New()

// get the context
ctx := framework.Context()

// initialize the aries clients
didexchangeClient, err := didexchange.New(ctx)
Example
package main

import (
	"fmt"

	"github.com/Universal-Health-Chain/aries-framework-go/pkg/didcomm/transport"
	"github.com/Universal-Health-Chain/aries-framework-go/pkg/storage"
)

func main() {
	// create the framework with user options
	framework, err := New(
		WithInboundTransport(newMockInTransport()),
		WithStoreProvider(newMockDBProvider()),
		WithProtocolStateStoreProvider(newMockDBProvider()),
	)
	if err != nil {
		fmt.Println("failed to create framework")
	}

	// get the context from the framework
	ctx, err := framework.Context()
	if err != nil {
		fmt.Println("failed to create framework context")
	}

	fmt.Println("context created successfully")
	fmt.Println(ctx.ServiceEndpoint())

}

// mock inbound transport.
type mockInTransport struct {
}

func newMockInTransport() *mockInTransport {
	return &mockInTransport{}
}

func (c *mockInTransport) Start(prov transport.Provider) error {
	return nil
}

func (c *mockInTransport) Stop() error {
	return nil
}

func (c *mockInTransport) Endpoint() string {
	return "http://server"
}

// mock DB provider.
type mockDBProvider struct {
}

func newMockDBProvider() *mockDBProvider {
	return &mockDBProvider{}
}

func (c *mockDBProvider) OpenStore(name string) (storage.Store, error) {
	return nil, nil
}

func (c *mockDBProvider) CloseStore(name string) error {
	return nil
}

func (c *mockDBProvider) Close() error {
	return nil
}
Output:

context created successfully
http://server

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Aries

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

Aries provides access to the context being managed by the framework. The context can be used to create aries clients.

func New

func New(opts ...Option) (*Aries, error)

New initializes the Aries framework based on the set of options provided. This function returns a framework which can be used to manage Aries clients by getting the framework context.

func (*Aries) Close

func (a *Aries) Close() error

Close frees resources being maintained by the framework.

func (*Aries) Context

func (a *Aries) Context() (*context.Provider, error)

Context provides a handle to the framework context.

func (*Aries) Messenger

func (a *Aries) Messenger() service.Messenger

Messenger returns messenger for sending messages through this agent framework TODO should use dedicated messenger interface instead of Outbound dispatcher [Issue #1058].

type Option

type Option func(opts *Aries) error

Option configures the framework.

func WithCrypto

func WithCrypto(c crypto.Crypto) Option

WithCrypto injects a crypto service to the Aries framework.

func WithInboundTransport

func WithInboundTransport(inboundTransport ...transport.InboundTransport) Option

WithInboundTransport injects an inbound transport to the Aries framework.

func WithKMS

func WithKMS(k kms.Creator) Option

WithKMS injects a KMS service to the Aries framework.

func WithMessageServiceProvider

func WithMessageServiceProvider(msv api.MessageServiceProvider) Option

WithMessageServiceProvider injects a message service provider to the Aries framework. Message service provider returns list of message services which can be used to provide custom handle functionality based on incoming messages type and purpose.

func WithMessengerHandler

func WithMessengerHandler(mh service.MessengerHandler) Option

WithMessengerHandler injects a messenger handler to the Aries framework.

func WithOutboundTransports

func WithOutboundTransports(outboundTransports ...transport.OutboundTransport) Option

WithOutboundTransports injects an outbound transports to the Aries framework.

func WithPacker

func WithPacker(primary packer.Creator, additionalPackers ...packer.Creator) Option

WithPacker injects at least one Packer service into the Aries framework, with the primary Packer being used for inbound/outbound communication and the additional packers being available for unpacking inbound messages.

func WithProtocolStateStoreProvider

func WithProtocolStateStoreProvider(prov storage.Provider) Option

WithProtocolStateStoreProvider injects a protocol state storage provider to the Aries framework.

func WithProtocols

func WithProtocols(protocolSvcCreator ...api.ProtocolSvcCreator) Option

WithProtocols injects a protocol service to the Aries framework.

func WithSecretLock

func WithSecretLock(s secretlock.Service) Option

WithSecretLock injects a SecretLock service to the Aries framework.

func WithStoreProvider

func WithStoreProvider(prov storage.Provider) Option

WithStoreProvider injects a storage provider to the Aries framework.

func WithTransportReturnRoute

func WithTransportReturnRoute(transportReturnRoute string) Option

WithTransportReturnRoute injects transport return route option to the Aries framework. Acceptable values - "none", "all" or "thread". RFC - https://github.com/hyperledger/aries-rfcs/tree/master/features/0092-transport-return-route. Currently, framework supports "all" and "none" option with WebSocket transport ("thread" is not supported).

func WithVDR

func WithVDR(v vdrapi.VDR) Option

WithVDR injects a VDR service to the Aries framework.

func WithVerifiableStore

func WithVerifiableStore(store verifiable.Store) Option

WithVerifiableStore injects a verifiable credential store.

Directories

Path Synopsis
api
vdr

Jump to

Keyboard shortcuts

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