Skip to content
Thomas Schwotzer edited this page Jan 4, 2022 · 13 revisions

Design your API

Let's design an API based on our concept. We need uses cases and features first.

Use Cases / Features

  1. Users can send a message as a kind of broadcast. This message is tagged to define its content.
  2. Users sign a message.
  3. Users are able to refuse messages which cannot be verified.
  4. Users can encrypt message for a given receiver.
  5. Users can choose their communication channel.
  6. Users can create a group of users. Messages can be sent in this user group. Only member can read those messages.

Shark Messenger API

The API can be found here. User groups are called channel.

Messages have got a structure. Parts of those messages are defined by means of the SharkMessage interface.

Messages can be received by a peer. We need a listener to get informed about that fact. We defined our own SharkMessagesReceivedListener interface. It is less complex than the basic received listener in ASAP.

Listener objects can (un-)subscribe to and from our component, see API

Required components

Messages can be signed and encrypted. Peers must exchange security keys. We have no plans to implement this feature in this project. We use the SharkPKI component instead.

Built in five steps

Related projects

User Guide

CLI - User Guide

  • TODO

Distributed Tests

Clone this wiki locally