aries

package
v0.3.2 Latest Latest
Warning

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

Go to latest
Published: May 9, 2023 License: Apache-2.0 Imports: 51 Imported by: 28

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/hyperledger/aries-framework-go/component/storageutil/mem"
	"github.com/hyperledger/aries-framework-go/pkg/didcomm/transport"
)

func main() {
	// create the framework with user options
	framework, err := New(
		WithInboundTransport(newMockInTransport()),
		WithStoreProvider(mem.NewProvider()),
		WithProtocolStateStoreProvider(mem.NewProvider()),
	)
	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"
}
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 added in v0.1.1

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 added in v0.1.1

func WithCrypto(c crypto.Crypto) Option

WithCrypto injects a crypto service to the Aries framework.

func WithDIDConnectionStore added in v0.1.7

func WithDIDConnectionStore(store did.ConnectionStore) Option

WithDIDConnectionStore injects a DID connection store.

func WithInboundTransport

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

WithInboundTransport injects an inbound transport to the Aries framework.

func WithJSONLDContextProviderURL added in v0.1.7

func WithJSONLDContextProviderURL(url ...string) Option

WithJSONLDContextProviderURL injects URLs of the remote JSON-LD context providers.

func WithJSONLDContextStore added in v0.1.7

func WithJSONLDContextStore(store ldstore.ContextStore) Option

WithJSONLDContextStore injects a JSON-LD context store.

func WithJSONLDDocumentLoader added in v0.1.7

func WithJSONLDDocumentLoader(loader jsonld.DocumentLoader) Option

WithJSONLDDocumentLoader injects a JSON-LD document loader.

func WithJSONLDRemoteProviderStore added in v0.1.7

func WithJSONLDRemoteProviderStore(store ldstore.RemoteProviderStore) Option

WithJSONLDRemoteProviderStore injects a JSON-LD remote provider store.

func WithKMS

func WithKMS(k kms.Creator) Option

WithKMS injects a KMS service to the Aries framework.

func WithKeyAgreementType added in v0.1.7

func WithKeyAgreementType(keyAgreementType kms.KeyType) Option

WithKeyAgreementType injects a default encryption key type.

func WithKeyType added in v0.1.7

func WithKeyType(keyType kms.KeyType) Option

WithKeyType injects a default signing key type.

func WithMediaTypeProfiles added in v0.1.7

func WithMediaTypeProfiles(mediaTypeProfiles []string) Option

WithMediaTypeProfiles injects a default media types profile.

func WithMessageServiceProvider added in v0.1.1

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 added in v0.1.1

func WithMessengerHandler(mh service.MessengerHandler) Option

WithMessengerHandler injects a messenger handler to the Aries framework.

func WithOutboundTransports added in v0.1.1

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 added in v0.1.4

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 added in v0.1.2

func WithSecretLock(s secretlock.Service) Option

WithSecretLock injects a SecretLock service to the Aries framework.

func WithServiceMsgTypeTargets added in v0.1.8

func WithServiceMsgTypeTargets(msgTypeTargets ...dispatcher.MessageTypeTarget) Option

WithServiceMsgTypeTargets injects service msg type to target mappings in the context.

func WithStoreProvider

func WithStoreProvider(prov storage.Provider) Option

WithStoreProvider injects a storage provider to the Aries framework.

func WithTransportReturnRoute added in v0.1.1

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 added in v0.1.5

func WithVDR(v vdrapi.VDR) Option

WithVDR injects a VDR service to the Aries framework.

func WithVerifiableStore added in v0.1.4

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