-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The future of qs #103
Comments
Thanks @traversc for this note. Your decision is very respectable, although I would urge to keep |
Thanks @SebKrantz , for now CRAN isn't forcing the issue. I hope data.table gets the official support they need. |
@traversc perhaps one more note here, the CRAN policy suggests that only major x.y.0 updates may be forced to fix all issues. So it should be possible to keep |
@SebKrantz Are you referring to this part?
R 4.5 is scheduled for Spring which is hopefully enough time to gracefully deprecate everything. |
I plan to deprecate the
qs
package in the future. There is a replacement available,qs2
, on CRAN and GitHub (1).There are two reasons:
New CRAN enforcement regarding certain internal functions that qs relies on (2). Since qs handles serialization for both data and internal objects, maintaining proper serialization has become difficult without broader access to these now-restricted functions.
qs
was first released in 2019. Since then, there have been numerous changes/improvements to the internals of R and therefore its serialization of internal objects. As a result, R updates have sometimes causedqs
to break in unexpected ways. Those breaks obviously cause disruption and have been time consuming to fix.The new
qs2
package addresses these issues.It uses only approved API functions and is designed to be more future-proof. The package has two new formats:
The
qs2
format uses R's built-in serialization but improves upon it with better file I/O, zstd compression, byte shuffling and multithreading. This is a good 80/20 solution and doesn`t require any update to ensure it works in the future.The
qdata
format, a spiritual successor toqs
, features its own serialization for data only (vectors, data frames, lists, matrices, attributes). It outperformsqs
andqs2
formats, especially with multithreading (3) and I also plan for limited cross-compatibility with Python later on.Thanks to everyone who used the
qs
package over the years and I hopeqs2
will be a worthy successor!(3) Benchmarks (4.5 GB mixed numeric/text data)
Single-threaded
Multi-threaded (8 threads)
The text was updated successfully, but these errors were encountered: