Ouroboros Implementation Overview: Difference between revisions
Line 14: | Line 14: | ||
=== Application flow allocation API === | === Application flow allocation API === | ||
==== Byte-Stream ==== | |||
=== Application flow management API === | === Application flow management API === |
Revision as of 18:12, 9 November 2023
This page is under construction The Ouroboros prototype is far from complete. In order to come to a usable production version, a lot more implementation is needed.
This page provides an overview of the current implementation status of the O7s prototype. It follows the directory structure of the repository and for each item explains what is currently implemented, stability of the current implementation, what is planned and the direction we would like to move towards. Some big items, the most prominent one being management of namespaces (ownership and scalability of service names) have yet started.
Library
The ouroboros library
Application end-to-end functions
These are the functions that are typically called by an application programmer to interact with the network.
Application flow allocation API
Byte-Stream
Application flow management API
Synchronous IPC API
Asynchronous IPC API
Application end-to-end background tasks
These functions are background tasks that are not directly visible to the application programmer.
FRCT
Encryption
Authentication
Not yet implemented.
Integrity
CRC
IRMd
IPCPs
Enrollment
Directory
Flow allocator
Ouroboros Flow Allocation Protocol
Packet Transfer
Tools
irm
Main page: Ouroboros Command Line Interface
oecho
oping
operf
ocbr
ovpn
Programming language support
The prototype itself is written in C for performance, but bindings for other languages are available or planned
Golang
Planned
Python 3
Rust
A rust interface is available on GitHub.
Other tools
Rumba orchestration framework
Main page: Rumba
Ouroboros metrics
Main page: Ouroboros Metrics
Ports
netcat
ioq3
Licenses
The Ouroboros Library is Licensed under LGPL2.1. The IRMd and IPCPs are Licensed under GPL2.1. Tools are licensed under 3-clause BSD.