Support This Project


Download now! (v0.3 beta - 52KB)

Follow the file release RSS feed...


KLV.java is a public domain class for working with Key-Length-Value (KLV) byte-packing and unpacking. Supports 1-, 2-, 4-byte, and BER-encoded length fields and 1-, 2-, 4-, and 16-byte key fields. Provides auto-mapping of KLV elements within a payload to the java.util.Map interface.

KLV has been used for years as a repeatable, no-guesswork technique for byte-packing data, that is, sending data in a binary format with two bytes for this integer, four bytes for that float, and so forth. KLV is used in broadcast television and is defined in SMPTE 336M-2001, but it also greatly eases the burden of non-TV-related applications for an easy, interchangeable binary format (always Big Endian). It is also enjoying success as a standard way to embed telemetry on Unmanned Aerial Vehicles (UAV) and other remote vehicles.

42 2 0 23
Key Length Value

This code is released into the Public Domain. Enjoy.


A Note About Public Domain

I have released this software into the Public Domain. That means you can do whatever you want with it. Really. You don't have to match it up with any other open source license &em; just use it. You can rename the files, move the Java packages, whatever you want. If your lawyers say you have to have a license, contact me, and I'll make a special release to you under whatever reasonable license you desire: MIT, BSD, GPL, whatever.

blog comments powered by Disqus