Closed rumpelsepp closed 5 months ago
I'm sorry but I'm going to say no to this due to the following:
pyproject.toml
to remove the ujson
dependency and then this package will use simply json
.orjson
.Thanks for your answer. For the sake of correctness:
We're not interested in supporting really old Linux distros, you are
This is wrong. I did not propose supporting really old Linux distros, but very recent ones by not relying on libstdc++
. Anyway, switching to orjson
should also fix those problems as it relies on Rust instead. From my experience this causes fewer compatability issues with libc than C++ dependencies.
Ok, sorry for the misunderstanding. I didn't know ujson is based on C++, which is causing the problem you reported.
Could you help us then to switch to orjson instead? I'll be happy to merge that PR.
The ujson dependency ships a C-extension via a wheel which could cause unnecessary problems due to different versions of glibc in different environments, especially on NixOS:
I propose removing this dependency, since I claim that the performance gain it did more than four years ago (added in 1c0c54079b093728ca6d3acb99d1c230708619e6) is not that much relevant any more. Here is a benchmark of several json implementations: https://github.com/TkTech/json_benchmark. The builtin
json
module is even faster thanujson
in 50% of their benchmarks.I claim, replacing
ujson
with the standardjson
module does not make any difference in practice; but it avoids compatability issues.