Hacker News new | ask | show | jobs
by felixhandte 1261 days ago
1. There are several implementations of Zstandard other than the "reference" libzstd that we maintain, tagged as "Ports" in the table here [0]. You are of course welcome to create or fork your own. We will happily take a PR adding yours to the table.

2. The format spec is an RFC [1]. It's frozen. We're not going to pull the rug out from under you somehow (and why would we??).

3. I think we do a pretty good job accepting contributions. But again, if we aren't, you can always fork it.

All in all, we've worked pretty hard to make zstd universal--portable, stable, flexible, robust, etc. I guess I don't really have a point... I guess I hope you reconsider your rejection of zstd? It's pretty cool.

[0] https://facebook.github.io/zstd/

[1] https://www.rfc-editor.org/rfc/rfc8878.txt

1 comments

This is going to sound like I'm moving the goal posts, because, well, I am. I apologize. But what I notice with all those ports are that they're all in languages other than C (or C++), which means they're pretty much confined to their language's ecosystem; there is no port that's prepared to take the place of the Facebook zstd library. If I want to write, say, Common Lisp bindings, I'm not going to write them against the Java port. The one which comes the closest is probably the Rust port, since Rust is establishing itself as a core low-level language which people write bindings to, but the Rust port is only a decompressor.

I'm also concerned with the term "port". I don't know exactly what you put in the term, but to me, it sounds like someone basically translated the C code directly to other languages. What I would be looking for is more like a "clean re-implementation" by an independent group of people who properly understand all the algorithms which are used and where all the code is written from scratch without the Facebook code as a "crutch". This would ensure that whatever Facebook does, there will be a group of people that is capable of fixing tricky bugs in the algorithms or implementing further optimizations. Basically, I would want the alternative implementation to be as unrelated to Facebook's libzstd as Clang is to GCC.

All of that said though, from a purely technical perspective, zstd seems like a truly great piece of engineering. Kudos. Though I will never understand what drives great developers to dedicate their life to producing value for Facebook.

money and probably the fact that they are near to other great developers...