The cl-myriam Reference Manual
Table of Contents
The cl-myriam Reference Manual
This is the cl-myriam Reference Manual, version 0.1.3,
generated automatically by Declt version 3.0 "Montgomery Scott"
on Sun May 15 03:59:56 2022 GMT+0.
1 Introduction
cl-myriam
myriam
is a simple attempt at implementing the actor model for secure, distributed programming. Feedback is very welcome!
This is a Common Lisp port of my myriam
Chicken Scheme egg. It's already at feature parity with its Scheme sister, aside from the ability to send functions/closures (and obviously, no continuations either), and uses ZMQ instead of NNG for messaging, which means we can make use of CurveZMQ for easier encryption and (some) authentication.
The API is very much unstable at the moment.
Requirements
Myriam stands on the shoulders of giants.
libzmq
built with libsodium
.
- Systems:
bordeaux-threads
cl-conspack
lparallel
pzmq
serapeum
str
usocket
sha3
Usage
cl-myriam
is on Quicklisp, so you can load it with (ql:quickload :cl-myriam)
.
Otherwise, you can load the :cl-myriam
system directly and require the :myriam
package. Everything you need is in there.
Make sure to check the tests folder for examples.
spawn
(spawn &rest actions) -> (values string thread)
Spawn an actor and return its address and thread. If no actions are specified, the actor will only react to predefined actions.
action
(action name task &optional context) -> action
Create an action for an actor definition. name
should be a keyword. task
should be a function with any number of arguments (or no arguments). context
should be either :sync
, :async
or :any
and defaults to :async
; it specifies the context in which a task can be executed, e.g. :sync
tasks will be executed synchronously and it's what you'll want if you expect to get a value out of them.
msg
(msg head &rest body) -> message
Create a message to be sent to an actor. head
should be a keyword corresponding to the name of a task defined in the target actor. Arguments in body
, if any, will be passed to the task to be executed.
send
and send*
(send address msg)
(send* address msg) -> (or * (values nil nil))
Send a message to an actor to be executed either in an asynchronous (send
) or synchronous (send*
) context. msg
should correspond in context, task name and number of arguments with the target task.
About identities
Identities encapsulate encryption keys. A self-identity
contains both a public and secret key, while a public-identity
contains only a public key.
Actors are spawned with the self-identity
inside *current-self-identity*
(which means that many actors can share the same identity, if you want). Outgoing messages need *target-public-identity*
to be set with a public-identity
for encryption.
make-self-identity
(make-self-identity) -> self-identity
Make a self-identity
with a keypair.
self->public-identity
(self->public-identity self-id) -> public-identity
Make a public-identity
from the public key in self-id
.
with-self-identity
(with-self-identity id &body body)
Execute body
with *current-self-identity*
set with self-identity
id
.
with-target-identity
(with-target-identity id &body body)
Execute body
with *target-public-identity*
set with public-identity
id
.
Messaging
ping
(send address (msg :ping))
Check if an actor is alive.
stop
(send address (msg :stop))
Stop an actor.
store
(send address (msg :store key datum))
Store datum
into an actor's internal storage. key
should be a keyword.
fetch
(send address (msg :fetch key))
Fetch a value from an actor's internal storage, or nil
of there is no such value. key
should be a keyword.
*self*
Dynamic variable useful for referring to an actor's self address.
*send-timeout*
Time to wait for a reply before killing the connection.
Authentication
By default, actors accept all incoming messages. You need to spawn an authenticator to filter out connections based on host and identities.
spawn-authenticator
(spawn-authenticator accept-p &optional name) -> (values bt:thread name)
Spawn an authenticator (a ZAP server). accept-p
should be a predicate which takes an IP address and the public key of the authenticating client (as a byte vector); an incoming connection will be either accepted or rejected based on the result of accept-p
. Name shoule be a unique string and it can be used for terminating the authenticator. You can only spawn a single authenticator per context, see below.
kill authenticator
(kill-authenticator name)
Kill the given authenticator.
authenticator-alive-p
(authenticator-alive-p name) -> boolean
Test if the authenticator with the given name is alive.
Contexts
Contexts allow you to separate actor groups with different authentication parameters. Without contexts, you're limited to one authenticator per application.
(defparameter a
(myr:with-new-context
(let ((authenticator (myr:spawn-authenticator
(lambda (ip key)
(declare (ignore key))
(string= ip "127.0.0.1")))))
(declare (ignore authenticator))
(myr:spawn))))
In this example, a
will only accept connections from localhost
.
with-new-context
(with-new-context &body forms)
Execute forms
in a fresh context. Mostly used to spawn actors under an authenticator with specific parameters.
Utilities
change-host
(change-host address new-host) -> valid-address
Replace the host in address
for new-host
.
all-actors
(all-actors) -> list
Get a list of all local actors.
stop-all-actors
(stop-all-actors)
Stop all local actors.
Notes
Current limitations/caveats
- Sending your own classes inside a message requires you to define the methods
encode-object
and decode-object
. See https://github.com/conspack/cl-conspack#clos-and-general-objects for more details, it's easier than it sounds.
- Synchronous messages block execution of an actor for the duration of the task.
- No assumptions are made about identity distribution and service (actor) discovery mechanisms.
2 Systems
The main system appears first, followed by any subsystem dependency.
2.1 cl-myriam
- Author
Ariela Wenner
- License
3-clause BSD
- Description
Simple actor model implementation for local and remote actors
- Version
0.1.3
- Dependencies
- babel
- bordeaux-threads
- cl-conspack
- cl-ppcre
- lparallel
- pzmq
- serapeum
- str
- uuid
- usocket
- sha3
- Source
cl-myriam.asd (file)
- Components
-
3 Modules
Modules are listed depth-first from the system components tree.
3.1 cl-myriam/src
- Dependency
package.lisp (file)
- Parent
cl-myriam (system)
- Location
src/
- Components
-
4 Files
Files are sorted by type and then listed depth-first from the systems
components trees.
4.1 Lisp
4.1.1 cl-myriam.asd
- Location
cl-myriam.asd
- Systems
cl-myriam (system)
4.1.2 cl-myriam/package.lisp
- Parent
cl-myriam (system)
- Location
package.lisp
- Packages
myriam
4.1.3 cl-myriam/src/utils.lisp
- Parent
src (module)
- Location
src/utils.lisp
- Exported Definitions
-
- Internal Definitions
-
4.1.4 cl-myriam/src/conditions.lisp
- Parent
src (module)
- Location
src/conditions.lisp
- Internal Definitions
-
4.1.5 cl-myriam/src/address.lisp
- Parent
src (module)
- Location
src/address.lisp
- Exported Definitions
change-host (function)
- Internal Definitions
-
4.1.6 cl-myriam/src/identity.lisp
- Parent
src (module)
- Location
src/identity.lisp
- Exported Definitions
-
- Internal Definitions
-
4.1.7 cl-myriam/src/context.lisp
- Parent
src (module)
- Location
src/context.lisp
- Exported Definitions
with-new-context (macro)
- Internal Definitions
*context* (special variable)
4.1.8 cl-myriam/src/authentication.lisp
- Parent
src (module)
- Location
src/authentication.lisp
- Exported Definitions
-
- Internal Definitions
-
4.1.9 cl-myriam/src/messaging.lisp
- Parent
src (module)
- Location
src/messaging.lisp
- Exported Definitions
-
- Internal Definitions
-
4.1.10 cl-myriam/src/action.lisp
- Parent
src (module)
- Location
src/action.lisp
- Exported Definitions
-
- Internal Definitions
-
4.1.11 cl-myriam/src/actors.lisp
- Parent
src (module)
- Location
src/actors.lisp
- Exported Definitions
-
- Internal Definitions
-
5 Packages
Packages are listed by definition order.
5.1 myriam
- Source
package.lisp (file)
- Nickname
myr
- Use List
common-lisp
- Exported Definitions
-
- Internal Definitions
-
6 Definitions
Definitions are sorted by export status, category, package, and then by
lexicographic order.
6.1 Exported definitions
6.1.1 Special variables
- Special Variable: *current-self-identity*
-
- Package
myriam
- Source
identity.lisp (file)
- Special Variable: *print-internal-actor-error-messages*
-
if not nil, print error messages when they occur inside an actor
- Package
myriam
- Source
actors.lisp (file)
- Special Variable: *self*
-
- Package
myriam
- Source
actors.lisp (file)
- Special Variable: *send-timeout*
-
- Package
myriam
- Source
messaging.lisp (file)
- Special Variable: *target-public-identity*
-
- Package
myriam
- Source
identity.lisp (file)
6.1.2 Macros
- Macro: with-new-context &body BODY
-
- Package
myriam
- Source
context.lisp (file)
- Macro: with-self-identity SELF-ID &rest BODY
-
- Package
myriam
- Source
identity.lisp (file)
- Macro: with-target-identity ID &rest BODY
-
- Package
myriam
- Source
identity.lisp (file)
6.1.3 Functions
- Function: action NAME TASK &optional CONTEXT
-
helper to make an instance of an action
- Package
myriam
- Source
action.lisp (file)
- Function: all-actors ()
-
- Package
myriam
- Source
utils.lisp (file)
- Function: authenticator-alive-p NAME
-
- Package
myriam
- Source
authentication.lisp (file)
- Function: change-host ADDRESS NEW-HOST
-
- Package
myriam
- Source
address.lisp (file)
- Function: kill-authenticator NAME
-
- Package
myriam
- Source
authentication.lisp (file)
- Function: make-self-identity ()
-
- Package
myriam
- Source
identity.lisp (file)
- Function: msg HEAD &rest BODY
-
Build a message. head should be a keyword symbol
- Package
myriam
- Source
messaging.lisp (file)
- Function: self->public-identity SELF-ID
-
- Package
myriam
- Source
identity.lisp (file)
- Function: send ACTOR MSG
-
send a message to an actor to perform an asychronous task
- Package
myriam
- Source
messaging.lisp (file)
- Function: send* ACTOR MSG
-
send a message to an actor to perform a synchronous task and get a result
- Package
myriam
- Source
messaging.lisp (file)
- Function: spawn &rest ACTIONS
-
spawn an actor, return its address and running thread
- Package
myriam
- Source
actors.lisp (file)
- Function: spawn-authenticator ACCEPT-P &optional NAME
-
Spawn an authenticator that will use accept-p (which should be a predicate that takes an IP address
and a public key as a byte vector) to either accept or reject incoming connections. Name, if given,
should be a unique string.
- Package
myriam
- Source
authentication.lisp (file)
- Function: stop-all-actors ()
-
- Package
myriam
- Source
utils.lisp (file)
6.1.4 Generic functions
- Generic Function: public-identity-hash OBJECT
-
- Generic Function: (setf public-identity-hash) NEW-VALUE OBJECT
-
- Package
myriam
- Methods
- Method: public-identity-hash (PUBLIC-IDENTITY public-identity)
-
automatically generated reader method
- Source
identity.lisp (file)
- Method: (setf public-identity-hash) NEW-VALUE (PUBLIC-IDENTITY public-identity)
-
automatically generated writer method
- Source
identity.lisp (file)
- Generic Function: public-identity-key OBJECT
-
- Generic Function: (setf public-identity-key) NEW-VALUE OBJECT
-
- Package
myriam
- Methods
- Method: public-identity-key (PUBLIC-IDENTITY public-identity)
-
automatically generated reader method
- Source
identity.lisp (file)
- Method: (setf public-identity-key) NEW-VALUE (PUBLIC-IDENTITY public-identity)
-
automatically generated writer method
- Source
identity.lisp (file)
- Generic Function: self-identity-hash OBJECT
-
- Generic Function: (setf self-identity-hash) NEW-VALUE OBJECT
-
- Package
myriam
- Methods
- Method: self-identity-hash (SELF-IDENTITY self-identity)
-
automatically generated reader method
- Source
identity.lisp (file)
- Method: (setf self-identity-hash) NEW-VALUE (SELF-IDENTITY self-identity)
-
automatically generated writer method
- Source
identity.lisp (file)
- Generic Function: self-identity-public-key OBJECT
-
- Generic Function: (setf self-identity-public-key) NEW-VALUE OBJECT
-
- Package
myriam
- Methods
- Method: self-identity-public-key (SELF-IDENTITY self-identity)
-
automatically generated reader method
- Source
identity.lisp (file)
- Method: (setf self-identity-public-key) NEW-VALUE (SELF-IDENTITY self-identity)
-
automatically generated writer method
- Source
identity.lisp (file)
- Generic Function: self-identity-secret-key OBJECT
-
- Generic Function: (setf self-identity-secret-key) NEW-VALUE OBJECT
-
- Package
myriam
- Methods
- Method: self-identity-secret-key (SELF-IDENTITY self-identity)
-
automatically generated reader method
- Source
identity.lisp (file)
- Method: (setf self-identity-secret-key) NEW-VALUE (SELF-IDENTITY self-identity)
-
automatically generated writer method
- Source
identity.lisp (file)
6.1.5 Classes
- Class: action ()
-
- Package
myriam
- Source
action.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: name
-
- Type
keyword
- Initargs
:name
- Readers
action-name (generic function)
- Writers
(setf action-name) (generic function)
- Slot: task
-
- Type
function
- Initargs
:task
- Readers
action-task (generic function)
- Writers
(setf action-task) (generic function)
- Slot: context
-
- Type
myriam::action-context-t
- Initargs
:context
- Initform
:async
- Readers
action-context (generic function)
- Writers
(setf action-context) (generic function)
- Class: public-identity ()
-
- Package
myriam
- Source
identity.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: public-key
-
- Type
(simple-array (unsigned-byte 8) (32))
- Initargs
:public-key
- Readers
public-identity-key (generic function)
- Writers
(setf public-identity-key) (generic function)
- Slot: hash
-
- Type
string
- Initargs
:hash
- Readers
public-identity-hash (generic function)
- Writers
(setf public-identity-hash) (generic function)
- Class: self-identity ()
-
- Package
myriam
- Source
identity.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: public-key
-
- Type
(simple-array (unsigned-byte 8) (32))
- Initargs
:public-key
- Readers
self-identity-public-key (generic function)
- Writers
(setf self-identity-public-key) (generic function)
- Slot: secret-key
-
- Type
(simple-array (unsigned-byte 8) (32))
- Initargs
:secret-key
- Readers
self-identity-secret-key (generic function)
- Writers
(setf self-identity-secret-key) (generic function)
- Slot: hash
-
- Type
string
- Initargs
:hash
- Readers
self-identity-hash (generic function)
- Writers
(setf self-identity-hash) (generic function)
6.2 Internal definitions
6.2.1 Special variables
- Special Variable: *actions*
-
- Package
myriam
- Source
actors.lisp (file)
- Special Variable: *address-scanner*
-
- Package
myriam
- Source
address.lisp (file)
- Special Variable: *context*
-
- Package
myriam
- Source
context.lisp (file)
- Special Variable: *storage*
-
- Package
myriam
- Source
actors.lisp (file)
- Special Variable: *storage-lock*
-
- Package
myriam
- Source
actors.lisp (file)
- Special Variable: *trust-store*
-
- Package
myriam
- Source
identity.lisp (file)
- Special Variable: *trust-store-lock*
-
- Package
myriam
- Source
identity.lisp (file)
6.2.2 Macros
- Macro: with-actor-parameters &rest BODY
-
- Package
myriam
- Source
actors.lisp (file)
- Macro: with-timeout TIMEOUT &body BODY
-
- Package
myriam
- Source
utils.lisp (file)
6.2.3 Functions
- Function: action-context-p X
-
- Package
myriam
- Source
action.lisp (file)
- Function: actor-loop ()
-
- Package
myriam
- Source
actors.lisp (file)
- Function: address->binding ADDRESS
-
- Package
myriam
- Source
address.lisp (file)
- Function: address-p OBJ
-
- Package
myriam
- Source
address.lisp (file)
- Function: address-tokens ADDRESS
-
- Package
myriam
- Source
address.lisp (file)
- Function: authenticator-thread NAME
-
- Package
myriam
- Source
authentication.lisp (file)
- Function: fetch-value* KEY
-
- Package
myriam
- Source
actors.lisp (file)
- Function: hash-blob BLOB
-
- Package
myriam
- Source
identity.lisp (file)
- Function: kernel-setup ()
-
- Package
myriam
- Source
utils.lisp (file)
- Function: make-address &optional PORT
-
- Package
myriam
- Source
address.lisp (file)
- Function: make-public-identity PKEY
-
- Package
myriam
- Source
identity.lisp (file)
- Function: make-random-port ()
-
- Package
myriam
- Source
address.lisp (file)
- Function: message-context-p X
-
- Package
myriam
- Source
messaging.lisp (file)
- Function: message-handle OBJ
-
- Package
myriam
- Source
actors.lisp (file)
- Function: post ACTOR MSG &key CONTEXT
-
send a message to an actor
- Package
myriam
- Source
messaging.lisp (file)
- Function: receive-and-process-auth-request SOCKET ACCEPT-P
-
- Package
myriam
- Source
authentication.lisp (file)
- Function: store-public-identity ID
-
- Package
myriam
- Source
identity.lisp (file)
- Function: store-value* KEY VALUE
-
- Package
myriam
- Source
actors.lisp (file)
- Function: string-uuid ()
-
- Package
myriam
- Source
utils.lisp (file)
- Function: valid-message-p MSG
-
check if this is a valid message in the correct context
- Package
myriam
- Source
actors.lisp (file)
- Function: valid-predefined-message-p MSG
-
check if this is a predefined message with the correct context - we conly care about :fetch for now
- Package
myriam
- Source
actors.lisp (file)
- Function: wrap-task TASK MESSAGE
-
wrap task according to its context
- Package
myriam
- Source
actors.lisp (file)
6.2.4 Generic functions
- Generic Function: action-context OBJECT
-
- Generic Function: (setf action-context) NEW-VALUE OBJECT
-
- Package
myriam
- Methods
- Method: action-context (ACTION action)
-
automatically generated reader method
- Source
action.lisp (file)
- Method: (setf action-context) NEW-VALUE (ACTION action)
-
automatically generated writer method
- Source
action.lisp (file)
- Generic Function: action-name OBJECT
-
- Generic Function: (setf action-name) NEW-VALUE OBJECT
-
- Package
myriam
- Methods
- Method: action-name (ACTION action)
-
automatically generated reader method
- Source
action.lisp (file)
- Method: (setf action-name) NEW-VALUE (ACTION action)
-
automatically generated writer method
- Source
action.lisp (file)
- Generic Function: action-task OBJECT
-
- Generic Function: (setf action-task) NEW-VALUE OBJECT
-
- Package
myriam
- Methods
- Method: action-task (ACTION action)
-
automatically generated reader method
- Source
action.lisp (file)
- Method: (setf action-task) NEW-VALUE (ACTION action)
-
automatically generated writer method
- Source
action.lisp (file)
- Generic Function: message-body OBJECT
-
- Generic Function: (setf message-body) NEW-VALUE OBJECT
-
- Package
myriam
- Methods
- Method: message-body (MESSAGE message)
-
automatically generated reader method
- Source
messaging.lisp (file)
- Method: (setf message-body) NEW-VALUE (MESSAGE message)
-
automatically generated writer method
- Source
messaging.lisp (file)
- Generic Function: message-context OBJECT
-
- Generic Function: (setf message-context) NEW-VALUE OBJECT
-
- Package
myriam
- Methods
- Method: message-context (MESSAGE message)
-
automatically generated reader method
- Source
messaging.lisp (file)
- Method: (setf message-context) NEW-VALUE (MESSAGE message)
-
automatically generated writer method
- Source
messaging.lisp (file)
- Generic Function: message-head OBJECT
-
- Generic Function: (setf message-head) NEW-VALUE OBJECT
-
- Package
myriam
- Methods
- Method: message-head (MESSAGE message)
-
automatically generated reader method
- Source
messaging.lisp (file)
- Method: (setf message-head) NEW-VALUE (MESSAGE message)
-
automatically generated writer method
- Source
messaging.lisp (file)
6.2.5 Conditions
- Condition: encryption-failed ()
-
Could not encrypt message with keys from our trust store.
- Package
myriam
- Source
conditions.lisp (file)
- Direct superclasses
error (condition)
- Condition: invalid-message ()
-
An invalid message received/attemped to be sent.
- Package
myriam
- Source
conditions.lisp (file)
- Direct superclasses
error (condition)
- Condition: self-identity-not-set ()
-
Self identity has not been set.
- Package
myriam
- Source
conditions.lisp (file)
- Direct superclasses
error (condition)
- Condition: target-identity-not-set ()
-
Target identity has not been set.
- Package
myriam
- Source
conditions.lisp (file)
- Direct superclasses
error (condition)
6.2.6 Classes
- Class: message ()
-
- Package
myriam
- Source
messaging.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: head
-
- Type
keyword
- Initargs
:head
- Readers
message-head (generic function)
- Writers
(setf message-head) (generic function)
- Slot: body
-
- Type
list
- Initargs
:body
- Readers
message-body (generic function)
- Writers
(setf message-body) (generic function)
- Slot: context
-
- Type
myriam::message-context-t
- Initargs
:context
- Initform
:async
- Readers
message-context (generic function)
- Writers
(setf message-context) (generic function)
6.2.7 Types
- Type: action-context-t ()
-
- Package
myriam
- Source
action.lisp (file)
- Type: message-context-t ()
-
- Package
myriam
- Source
messaging.lisp (file)
- Type: valid-address ()
-
- Package
myriam
- Source
address.lisp (file)
Appendix A Indexes
A.1 Concepts
| Index Entry | | Section |
|
C | | |
| cl-myriam.asd: | | The cl-myriam․asd file |
| cl-myriam/package.lisp: | | The cl-myriam/package․lisp file |
| cl-myriam/src: | | The cl-myriam/src module |
| cl-myriam/src/action.lisp: | | The cl-myriam/src/action․lisp file |
| cl-myriam/src/actors.lisp: | | The cl-myriam/src/actors․lisp file |
| cl-myriam/src/address.lisp: | | The cl-myriam/src/address․lisp file |
| cl-myriam/src/authentication.lisp: | | The cl-myriam/src/authentication․lisp file |
| cl-myriam/src/conditions.lisp: | | The cl-myriam/src/conditions․lisp file |
| cl-myriam/src/context.lisp: | | The cl-myriam/src/context․lisp file |
| cl-myriam/src/identity.lisp: | | The cl-myriam/src/identity․lisp file |
| cl-myriam/src/messaging.lisp: | | The cl-myriam/src/messaging․lisp file |
| cl-myriam/src/utils.lisp: | | The cl-myriam/src/utils․lisp file |
|
F | | |
| File, Lisp, cl-myriam.asd: | | The cl-myriam․asd file |
| File, Lisp, cl-myriam/package.lisp: | | The cl-myriam/package․lisp file |
| File, Lisp, cl-myriam/src/action.lisp: | | The cl-myriam/src/action․lisp file |
| File, Lisp, cl-myriam/src/actors.lisp: | | The cl-myriam/src/actors․lisp file |
| File, Lisp, cl-myriam/src/address.lisp: | | The cl-myriam/src/address․lisp file |
| File, Lisp, cl-myriam/src/authentication.lisp: | | The cl-myriam/src/authentication․lisp file |
| File, Lisp, cl-myriam/src/conditions.lisp: | | The cl-myriam/src/conditions․lisp file |
| File, Lisp, cl-myriam/src/context.lisp: | | The cl-myriam/src/context․lisp file |
| File, Lisp, cl-myriam/src/identity.lisp: | | The cl-myriam/src/identity․lisp file |
| File, Lisp, cl-myriam/src/messaging.lisp: | | The cl-myriam/src/messaging․lisp file |
| File, Lisp, cl-myriam/src/utils.lisp: | | The cl-myriam/src/utils․lisp file |
|
L | | |
| Lisp File, cl-myriam.asd: | | The cl-myriam․asd file |
| Lisp File, cl-myriam/package.lisp: | | The cl-myriam/package․lisp file |
| Lisp File, cl-myriam/src/action.lisp: | | The cl-myriam/src/action․lisp file |
| Lisp File, cl-myriam/src/actors.lisp: | | The cl-myriam/src/actors․lisp file |
| Lisp File, cl-myriam/src/address.lisp: | | The cl-myriam/src/address․lisp file |
| Lisp File, cl-myriam/src/authentication.lisp: | | The cl-myriam/src/authentication․lisp file |
| Lisp File, cl-myriam/src/conditions.lisp: | | The cl-myriam/src/conditions․lisp file |
| Lisp File, cl-myriam/src/context.lisp: | | The cl-myriam/src/context․lisp file |
| Lisp File, cl-myriam/src/identity.lisp: | | The cl-myriam/src/identity․lisp file |
| Lisp File, cl-myriam/src/messaging.lisp: | | The cl-myriam/src/messaging․lisp file |
| Lisp File, cl-myriam/src/utils.lisp: | | The cl-myriam/src/utils․lisp file |
|
M | | |
| Module, cl-myriam/src: | | The cl-myriam/src module |
|
A.2 Functions
| Index Entry | | Section |
|
( | | |
| (setf action-context) : | | Internal generic functions |
| (setf action-context) : | | Internal generic functions |
| (setf action-name) : | | Internal generic functions |
| (setf action-name) : | | Internal generic functions |
| (setf action-task) : | | Internal generic functions |
| (setf action-task) : | | Internal generic functions |
| (setf message-body) : | | Internal generic functions |
| (setf message-body) : | | Internal generic functions |
| (setf message-context) : | | Internal generic functions |
| (setf message-context) : | | Internal generic functions |
| (setf message-head) : | | Internal generic functions |
| (setf message-head) : | | Internal generic functions |
| (setf public-identity-hash) : | | Exported generic functions |
| (setf public-identity-hash) : | | Exported generic functions |
| (setf public-identity-key) : | | Exported generic functions |
| (setf public-identity-key) : | | Exported generic functions |
| (setf self-identity-hash) : | | Exported generic functions |
| (setf self-identity-hash) : | | Exported generic functions |
| (setf self-identity-public-key) : | | Exported generic functions |
| (setf self-identity-public-key) : | | Exported generic functions |
| (setf self-identity-secret-key) : | | Exported generic functions |
| (setf self-identity-secret-key) : | | Exported generic functions |
|
A | | |
| action : | | Exported functions |
| action-context : | | Internal generic functions |
| action-context : | | Internal generic functions |
| action-context-p : | | Internal functions |
| action-name : | | Internal generic functions |
| action-name : | | Internal generic functions |
| action-task : | | Internal generic functions |
| action-task : | | Internal generic functions |
| actor-loop : | | Internal functions |
| address->binding : | | Internal functions |
| address-p : | | Internal functions |
| address-tokens : | | Internal functions |
| all-actors : | | Exported functions |
| authenticator-alive-p : | | Exported functions |
| authenticator-thread : | | Internal functions |
|
C | | |
| change-host : | | Exported functions |
|
F | | |
| fetch-value* : | | Internal functions |
| Function, action : | | Exported functions |
| Function, action-context-p : | | Internal functions |
| Function, actor-loop : | | Internal functions |
| Function, address->binding : | | Internal functions |
| Function, address-p : | | Internal functions |
| Function, address-tokens : | | Internal functions |
| Function, all-actors : | | Exported functions |
| Function, authenticator-alive-p : | | Exported functions |
| Function, authenticator-thread : | | Internal functions |
| Function, change-host : | | Exported functions |
| Function, fetch-value* : | | Internal functions |
| Function, hash-blob : | | Internal functions |
| Function, kernel-setup : | | Internal functions |
| Function, kill-authenticator : | | Exported functions |
| Function, make-address : | | Internal functions |
| Function, make-public-identity : | | Internal functions |
| Function, make-random-port : | | Internal functions |
| Function, make-self-identity : | | Exported functions |
| Function, message-context-p : | | Internal functions |
| Function, message-handle : | | Internal functions |
| Function, msg : | | Exported functions |
| Function, post : | | Internal functions |
| Function, receive-and-process-auth-request : | | Internal functions |
| Function, self->public-identity : | | Exported functions |
| Function, send : | | Exported functions |
| Function, send* : | | Exported functions |
| Function, spawn : | | Exported functions |
| Function, spawn-authenticator : | | Exported functions |
| Function, stop-all-actors : | | Exported functions |
| Function, store-public-identity : | | Internal functions |
| Function, store-value* : | | Internal functions |
| Function, string-uuid : | | Internal functions |
| Function, valid-message-p : | | Internal functions |
| Function, valid-predefined-message-p : | | Internal functions |
| Function, wrap-task : | | Internal functions |
|
G | | |
| Generic Function, (setf action-context) : | | Internal generic functions |
| Generic Function, (setf action-name) : | | Internal generic functions |
| Generic Function, (setf action-task) : | | Internal generic functions |
| Generic Function, (setf message-body) : | | Internal generic functions |
| Generic Function, (setf message-context) : | | Internal generic functions |
| Generic Function, (setf message-head) : | | Internal generic functions |
| Generic Function, (setf public-identity-hash) : | | Exported generic functions |
| Generic Function, (setf public-identity-key) : | | Exported generic functions |
| Generic Function, (setf self-identity-hash) : | | Exported generic functions |
| Generic Function, (setf self-identity-public-key) : | | Exported generic functions |
| Generic Function, (setf self-identity-secret-key) : | | Exported generic functions |
| Generic Function, action-context : | | Internal generic functions |
| Generic Function, action-name : | | Internal generic functions |
| Generic Function, action-task : | | Internal generic functions |
| Generic Function, message-body : | | Internal generic functions |
| Generic Function, message-context : | | Internal generic functions |
| Generic Function, message-head : | | Internal generic functions |
| Generic Function, public-identity-hash : | | Exported generic functions |
| Generic Function, public-identity-key : | | Exported generic functions |
| Generic Function, self-identity-hash : | | Exported generic functions |
| Generic Function, self-identity-public-key : | | Exported generic functions |
| Generic Function, self-identity-secret-key : | | Exported generic functions |
|
H | | |
| hash-blob : | | Internal functions |
|
K | | |
| kernel-setup : | | Internal functions |
| kill-authenticator : | | Exported functions |
|
M | | |
| Macro, with-actor-parameters : | | Internal macros |
| Macro, with-new-context : | | Exported macros |
| Macro, with-self-identity : | | Exported macros |
| Macro, with-target-identity : | | Exported macros |
| Macro, with-timeout : | | Internal macros |
| make-address : | | Internal functions |
| make-public-identity : | | Internal functions |
| make-random-port : | | Internal functions |
| make-self-identity : | | Exported functions |
| message-body : | | Internal generic functions |
| message-body : | | Internal generic functions |
| message-context : | | Internal generic functions |
| message-context : | | Internal generic functions |
| message-context-p : | | Internal functions |
| message-handle : | | Internal functions |
| message-head : | | Internal generic functions |
| message-head : | | Internal generic functions |
| Method, (setf action-context) : | | Internal generic functions |
| Method, (setf action-name) : | | Internal generic functions |
| Method, (setf action-task) : | | Internal generic functions |
| Method, (setf message-body) : | | Internal generic functions |
| Method, (setf message-context) : | | Internal generic functions |
| Method, (setf message-head) : | | Internal generic functions |
| Method, (setf public-identity-hash) : | | Exported generic functions |
| Method, (setf public-identity-key) : | | Exported generic functions |
| Method, (setf self-identity-hash) : | | Exported generic functions |
| Method, (setf self-identity-public-key) : | | Exported generic functions |
| Method, (setf self-identity-secret-key) : | | Exported generic functions |
| Method, action-context : | | Internal generic functions |
| Method, action-name : | | Internal generic functions |
| Method, action-task : | | Internal generic functions |
| Method, message-body : | | Internal generic functions |
| Method, message-context : | | Internal generic functions |
| Method, message-head : | | Internal generic functions |
| Method, public-identity-hash : | | Exported generic functions |
| Method, public-identity-key : | | Exported generic functions |
| Method, self-identity-hash : | | Exported generic functions |
| Method, self-identity-public-key : | | Exported generic functions |
| Method, self-identity-secret-key : | | Exported generic functions |
| msg : | | Exported functions |
|
P | | |
| post : | | Internal functions |
| public-identity-hash : | | Exported generic functions |
| public-identity-hash : | | Exported generic functions |
| public-identity-key : | | Exported generic functions |
| public-identity-key : | | Exported generic functions |
|
R | | |
| receive-and-process-auth-request : | | Internal functions |
|
S | | |
| self->public-identity : | | Exported functions |
| self-identity-hash : | | Exported generic functions |
| self-identity-hash : | | Exported generic functions |
| self-identity-public-key : | | Exported generic functions |
| self-identity-public-key : | | Exported generic functions |
| self-identity-secret-key : | | Exported generic functions |
| self-identity-secret-key : | | Exported generic functions |
| send : | | Exported functions |
| send* : | | Exported functions |
| spawn : | | Exported functions |
| spawn-authenticator : | | Exported functions |
| stop-all-actors : | | Exported functions |
| store-public-identity : | | Internal functions |
| store-value* : | | Internal functions |
| string-uuid : | | Internal functions |
|
V | | |
| valid-message-p : | | Internal functions |
| valid-predefined-message-p : | | Internal functions |
|
W | | |
| with-actor-parameters : | | Internal macros |
| with-new-context : | | Exported macros |
| with-self-identity : | | Exported macros |
| with-target-identity : | | Exported macros |
| with-timeout : | | Internal macros |
| wrap-task : | | Internal functions |
|
A.3 Variables
| Index Entry | | Section |
|
* | | |
| *actions* : | | Internal special variables |
| *address-scanner* : | | Internal special variables |
| *context* : | | Internal special variables |
| *current-self-identity* : | | Exported special variables |
| *print-internal-actor-error-messages* : | | Exported special variables |
| *self* : | | Exported special variables |
| *send-timeout* : | | Exported special variables |
| *storage* : | | Internal special variables |
| *storage-lock* : | | Internal special variables |
| *target-public-identity* : | | Exported special variables |
| *trust-store* : | | Internal special variables |
| *trust-store-lock* : | | Internal special variables |
|
B | | |
| body : | | Internal classes |
|
C | | |
| context : | | Exported classes |
| context : | | Internal classes |
|
H | | |
| hash : | | Exported classes |
| hash : | | Exported classes |
| head : | | Internal classes |
|
N | | |
| name : | | Exported classes |
|
P | | |
| public-key : | | Exported classes |
| public-key : | | Exported classes |
|
S | | |
| secret-key : | | Exported classes |
| Slot, body : | | Internal classes |
| Slot, context : | | Exported classes |
| Slot, context : | | Internal classes |
| Slot, hash : | | Exported classes |
| Slot, hash : | | Exported classes |
| Slot, head : | | Internal classes |
| Slot, name : | | Exported classes |
| Slot, public-key : | | Exported classes |
| Slot, public-key : | | Exported classes |
| Slot, secret-key : | | Exported classes |
| Slot, task : | | Exported classes |
| Special Variable, *actions* : | | Internal special variables |
| Special Variable, *address-scanner* : | | Internal special variables |
| Special Variable, *context* : | | Internal special variables |
| Special Variable, *current-self-identity* : | | Exported special variables |
| Special Variable, *print-internal-actor-error-messages* : | | Exported special variables |
| Special Variable, *self* : | | Exported special variables |
| Special Variable, *send-timeout* : | | Exported special variables |
| Special Variable, *storage* : | | Internal special variables |
| Special Variable, *storage-lock* : | | Internal special variables |
| Special Variable, *target-public-identity* : | | Exported special variables |
| Special Variable, *trust-store* : | | Internal special variables |
| Special Variable, *trust-store-lock* : | | Internal special variables |
|
T | | |
| task : | | Exported classes |
|
A.4 Data types
| Index Entry | | Section |
|
A | | |
| action : | | Exported classes |
| action-context-t : | | Internal types |
|
C | | |
| cl-myriam : | | The cl-myriam system |
| Class, action : | | Exported classes |
| Class, message : | | Internal classes |
| Class, public-identity : | | Exported classes |
| Class, self-identity : | | Exported classes |
| Condition, encryption-failed : | | Internal conditions |
| Condition, invalid-message : | | Internal conditions |
| Condition, self-identity-not-set : | | Internal conditions |
| Condition, target-identity-not-set : | | Internal conditions |
|
E | | |
| encryption-failed : | | Internal conditions |
|
I | | |
| invalid-message : | | Internal conditions |
|
M | | |
| message : | | Internal classes |
| message-context-t : | | Internal types |
| myriam : | | The myriam package |
|
P | | |
| Package, myriam : | | The myriam package |
| public-identity : | | Exported classes |
|
S | | |
| self-identity : | | Exported classes |
| self-identity-not-set : | | Internal conditions |
| System, cl-myriam : | | The cl-myriam system |
|
T | | |
| target-identity-not-set : | | Internal conditions |
| Type, action-context-t : | | Internal types |
| Type, message-context-t : | | Internal types |
| Type, valid-address : | | Internal types |
|
V | | |
| valid-address : | | Internal types |
|