Introduce new wxZstdInputStream and wxZstdOutputStream (Issue #23173)

28 views
Skip to first unread message

Ian McInerney

unread,
Jan 24, 2023, 9:44:03 AM1/24/23
to wx-...@googlegroups.com, Subscribed

Description

The zstd compression type has seen a spike in usage/interest in the past few years, with many larger systems now introducing support for it (including the Linux kernel and several package managers). It is also slowly trickling down into user applications as an option. Looking through the wx docs, there is currently no support for a zstd format input/output stream, only zlib and zip-based compression streams. I think it would be useful to add a zstd stream that behaves the same as the zlib streams (to essentially allow a drop-in replacement as much as possible).


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/issues/23173@github.com>

VZ

unread,
Jan 24, 2023, 11:05:42 AM1/24/23
to wx-...@googlegroups.com, Subscribed

I think it should be relatively straightforward to add this. However I'm not really sure it's worth doing this, LZMA format is surely even more popular, and yet I don't think anybody uses it since support for it was added a few years ago already...


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/issues/23173/1402196597@github.com>

Ian McInerney

unread,
Jan 24, 2023, 11:40:38 AM1/24/23
to wx-...@googlegroups.com, Subscribed

I can't comment on how many people might start using it, but it came up as a user request on a feature we have been developing that makes use of the input/output streams as its IO system (https://gitlab.com/kicad/code/kicad/-/merge_requests/154#note_1250881819).

It isn't a priority, but I figured it would be good to at least log a tracker/request for it.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/issues/23173/1402249280@github.com>

Lauri Nurmi

unread,
Jan 26, 2023, 3:23:47 PM1/26/23
to wx-...@googlegroups.com, Subscribed

I think it should be relatively straightforward to add this. However I'm not really sure it's worth doing this, LZMA format is surely even more popular, and yet I don't think anybody uses it since support for it was added a few years ago already...

I am (we are) actually using wxLZMAInputStream in production, so there's at least a grand total of 1 user for it.

The main issue with it is that compiling wxWidgets with LZMA support takes some effort, as liblzma doesn't ship with wx, and it doesn't ship with Windows nor macOS. Also I don't think either Fedora or Ubuntu packages of wxGTK are built with LZMA support, so it is may not be easily available anywhere by default.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/issues/23173/1405606070@github.com>

VZ

unread,
Jan 26, 2023, 5:20:35 PM1/26/23
to wx-...@googlegroups.com, Subscribed

I am (we are) actually using wxLZMAInputStream in production, so there's at least a grand total of 1 user for it.

Nice to hear it, thanks!

The main issue with it is that compiling wxWidgets with LZMA support takes some effort, as liblzma doesn't ship with wx, and it doesn't ship with Windows nor macOS.

We could add it as a submodule, but I'm not sure if we really want to... Same question would arise for zstd, of course.

Also I don't think either Fedora or Ubuntu packages of wxGTK are built with LZMA support, so it may not be easily available anywhere by default.

I think it would be nice to build the distro packages with LZMA support if possible because it's (or at least should be) simple to do and, considering the number of dependencies wx has, I don't see any real drawbacks for doing it. But it's not difficult to apt install liblzma-dev under Linux neither, and even macOS has brew. It's just Windows for which there is no standard solution (there is vcpkg, and conan, and ... but none of them is standard).


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/issues/23173/1405748548@github.com>

Mark Roszko

unread,
Feb 1, 2023, 2:32:46 PM2/1/23
to wx-...@googlegroups.com, Subscribed

It's just Windows for which there is no standard solution (there is vcpkg,

Since vcpkg is Microsoft and Windows is Microsoft, I would consider it to be standard heh. Especially since MSVC now ships with vcpkg and activates support out of the box (https://devblogs.microsoft.com/cppblog/vcpkg-environment-activation-in-visual-studio/)


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/issues/23173/1412612168@github.com>

Reply all
Reply to author
Forward
0 new messages