Supported platforms

Currently, Echo only supports Linux platforms. Support for other POSIX based platforms is planned


The core Echo system with bindings for c++ requires no additional dependencies. If you want to use the included Python bindings, PyBind11 is required. Since one of the provided examples shows video streaming with the ose of the OpenCV platform, OpenCV is required to build this example. Additionally, you will need CMake to build the project.


First, create a new directory and download the project from Bitbucket:

mkdir project_directory_path
cd project_directory_path
git clone
cd echolib

Then, use CMake to build the project:

cmake .

Running the examples

Echo comes with several example programs that demonstrate it’s use. After building the project, they should be available in the ./bin directory. The following files should be created:

chat (simple chat application)
chunked (a demonstration of splitting big messages into smaller, more optimal chunks)
opencv (a demonstartion of sharing video using opencv)

Echo is based on a central process or daemon, which runs in the background and manages the communication between processes. Because of this, the daemon process must always be running in the background when you wish to use Echo. When starting the daemon process, you must prowide a socket name that other proccesses will connect to. To start the daemon, simply run:

./echodaemon path_to_socket/socket_name

Alternativelly, if you wish to communicate over IP sockets, run the daemon with:

./echodaemon -i port

With the daemon running, you can now start programs that will communicate with each other. For example, starting two instances of the chat example will allow you to send text messages between the instances.

Echo is now ready for use. Click here to start using the system.