Using kodo, developers can easily integrate erasure correcting codes to meet their specific needs. The kodo software library implements a wide range of erasure correcting codes ranging from novel codes such as Random Linear Network Codes to traditional codes such as Reed-Solomon. Kodo is cross-platform which makes it easy to deploy your code on a variety of chips and platforms.
kodo use cases
Low delay communication
Using kodo’s erasure correcting code algorithms, redundancy can be injected into the packet transport and thereby enabling receivers to quickly recover from packet loss and avoid costly round-trip-times (RTT) incurred by relying on traditional acknowledgment based scheme used in protocols such as TCP.
Design a reliable multicast protocol
Kodo is an ideal component when designing reliable multicast protocols, as many of the challenges are solved both more efficiently and easier from a development point of view. Score is Steinwurf's own reliable multicast protocol which is made using Kodo.
Increase communication reliability
Using the erasure correcting codes provided by kodo, device to device communication can be made robust in scenarios with high loss probability. This is accomplished by sending encoded redundancy that is statistically more likely to be useful for the receiver. In scenarios where packets are passed through a multi hop network, recoding of the packets can be used for obtaining even bigger gains.
Increase storage robustness
With kodo it is possible to build storage systems which are more robust towards data loss due to, e.g., failing hard drives. This is accomplished by using erasure correcting codes to encode the existing data and restore the original data. Our partner company, Chocolate Cloud is working with that solution. Visit their website here: Chocolate Cloud.
kodo is designed to ensure performance, testability, flexibility and extensibility. Kodo is written in C++ and is highly optimized. Furthermore the library is thoroughly and continuously tested and benchmarked on a range of platforms to ensure high and predictable performance.
kodo also supports various network coding algorithms, e.g. Standard RLNC, Systematic RLNC and Sparse RLNC. Each algorithm offers unique advantages and drawbacks as well as a different set of parameters that can be tuned in real-time. This can be employed to adapt to time varying cellular channels, or to change the amount of redundancy in a distributed storage network or meshed network.
From an implementer’s perspective Kodo exposes a simple Application Programming Interface (API), which allows you to take advantage of erasure correcting codes such as Reed-Solomon and network coding in your application.
Documentation contains all the necessary information to get started including:
- Quick Start (for all our different programming languages)
- Tested platforms
- Including Kodo in your application
Contact us for information on technical evaluation options and pricing: firstname.lastname@example.org