brianmario / yajl-ruby

A streaming JSON parsing and encoding library for Ruby (C bindings to yajl)
http://rdoc.info/projects/brianmario/yajl-ruby
MIT License
1.48k stars 169 forks source link

[Question] Why the archive streaming support will be deprecated in 2.0? #181

Open noraj opened 6 years ago

noraj commented 6 years ago

Why the archive streaming support will be deprecated in 2.0?

See https://github.com/brianmario/yajl-ruby/blob/master/CHANGELOG.md#100-september-13th-2011

semaperepelitsa commented 3 years ago

Would like to know the reason behind deprecations as well, considering Readme still recommends using them 🙂

kyrofa commented 6 months ago

These were introduced in 3127064144ee3944586941f9d637d6257a5d2aca, which also contains no context. @brianmario can you help us out, here? It's unclear what we should be using.

brianmario commented 6 months ago

Hey everyone, so sorry on the delay. I'm very rarely on GitHub these days.

So full disclosure this was my first big OSS project. And at the time (September of 2011) I was adding as many features as I could in order to help adoption - which apparently worked ;)

Over the years as I matured as an engineer, I came to realize that reducing the scope of the library would make maintenance a lot easier. My plan was to move those APIs into an "example" folder (or something) from which a caller could basically copy/paste that code into their own project if they wanted it. The streaming APIs aren't doing anything special or magic that couldn't be dropped in another codebase.

I had a similar revelation with mysql2, after which I co-wrote Trilogy. For reasons I outline here.

I had plans to move this project to the underlying yajl 2.x branch, but I didn't do a great job of keeping track of my changes to the yajl library itself. The yajl 2.x branch diverged quite a bit from my heavily modified yajl 1.x branch I had embedded in this codebase. I made some pretty good progress in the 2.0 branch but there are still missing features in yajl 2.x itself that held me back from fully moving to it. So it stalled out and I have been away from OSS work since around 2018.

I'm not sure when I'll have any time to help wrap up the 2.0 branch, if ever. Sorry :(