Interplanetary telemetry compression
blog.klaehn.org
blog.klaehn.org
I tried to get it to work, but had some trouble with the existing javascript bindings. I have only recently started developing in the javascript ecosystem.
PRs welcome...
I've seen some bugs and issues with the official go server, and didn't feel it was production ready.
For IPNS I am using the DNS txt record workaround until IPNS gets more stable. See http://blog.klaehn.org/2018/06/06/publish-blog-on-ipfs/ for how that works.
I am publishing the blog and several static pages on ipfs. So far it works really well.
The raw CCSDS packet stream also gets stored, but given that the MCS systems are rather inflexible, they are not as valuable for general analysis.
Their main advantage is that they have good, mature implementations in a variety of languages, which would be handy if you ever find Javascript to be too slow.
The reason I wrote this in typescript is that it is nice for prototyping when working with JSON data. If it ever turns out too slow, I would write a rust version. Should not take more than a few days.
I have not profiled it, but I would guess that the most time is spent in the zlib deflate implementation, which is of course already a C library, so I would not expect miracles from a rewrite in rust.
While HDF5 is good when you manage the whole system, it is always tricky for sharing data with other people so we are also using SQLite. We lose the compression but it is very easy to share and people are more familiar with it.
Of course you also lose the compression, but the target system is typically only interested in a small subset of the data.