Code Monkey home page Code Monkey logo

ncutils's Introduction

Network Coding Utilities

WARNING: the code released has still to be considered experimental and may contain serious bugs. Use it with caution.

This project is composed by three libraries:

  • ncutils-java and ncutils-c: these two libraries provide slow but flexible functions to implement network coding ideas both in pure Java and C.
  • ncutils-codec: this library provides an implementation of random network coding over F2^8. This library is faster than the above but is less flexible. It includes native code to accelerate both encoding and decoding.

You can download releases of this source code from https://github.com/lokeller/ncutils/releases.

ncutils-java and ncutils-c

These libraries provide a set of functions that can be used to implement network coding techniques in applications:

  • Implementation of finite field operations over GF(p) where p is a prime and GF(2^m)
  • Coding vector decoding for linear network codes (matrix inversion over finite fields)
  • Packet decoding for linear network codes: given a set of linearly coded packets reconstruct the original uncoded packets

An example of the usage of the API is provided in TUTORIAL.md.

ncutils-codec

This Java library can be used to implement support of random network coding in a Java application. The API is very simple. If the platform is supported the library uses JNI and a native library to accelerate encoding and decoding otherwise it falls back to a pure Java implementation. The binary distributed on this website includes already compiled native code for Linux i386 and amd64. The native code should be easily compiled on other platforms too (tested on Android ARM).

An example of the usage of the library can be found ncutils-codec/examples/java/Example.java.

Contributions are welcome

The performance of the code has not been fully optimized, any improvement is welcome. If you have any other comment about how to make this project more useful feel free to contact the project maintainer.

If you are interested in contributing some code of general interest feel free to contact the project maintainer. Keep however in mind that the code should be reasonably well documented in order to be useful to others.

ncutils's People

Contributors

lokeller avatar ibanesh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.