-
Notifications
You must be signed in to change notification settings - Fork 131
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
Do you use Wuffs? Tell us! #13
Comments
Thanks to metallb/metallb#5 for the inspiration. |
Shouldn't come as a surprise, but I use it :) currently playing with it for https://github.com/mvdan/zstd. A bit rough and unstable, but now that I can have method calls, I should be able to implement more and more bits of zstd. By the way - I know you created a mailing list, and I subscribed - but I created a #wuffs channel on gophers.slack.com too. Not much happening there yet, but just in case it wasn't on your radar. |
The Wuffs GIF decoder is being trialled by Skia, the 2-D graphics library used by both the Android operating system and the Chromium web browser. |
When using Wuffs, do you guys have any syntax highlighting? If so, which editor/extension do you use? I want to try Wuffs, but programming without syntax highlighting seems intimidating. Thanks! |
I personally program without any editor support, which is acceptable given there is wuffsfmt. |
I use vim, but my use of syntax highlighting probably isn't what you're expecting. I wrote more about this at https://nigeltao.github.io/blog/2018/colorful-text.html
|
I don't use Wuffs, but I've written a drop-in replacement for GIFLIB that I believe is even faster than Wuffs at LZW decoding. I use the output image as the dictionary and for images that compress well, it can decode > 20x faster than the original GIFLIB. I have only implemented the new API for most features, but if you need speed, it may be worth a look --> https://github.com/bitbank2/giflib-turbo |
I wanted to try wuffs to build a simple CLI tool to decode the very simple TFRecord format but I ran into a few challenges trying to get started. I'll list them here and then file independent issues.
It would be great if there was a tutorial example of a whole project step by step, much like what I'm trying to do. E.g. "create decoder.wuffs. paste in this tiny bit. create decoder.c. paste in this tiny bit. create Makefile. paste in this tiny bit. run make. try your program. see you've built cat. modify wuffs code adding this bit to verify x. run make. see your cat now requires uppercase starting letter. replace the last tiny bit with this tiny bit. see your cat now requires an md5 checksum to match the content before it will print it out" or some other not-quite trivial example that uses some features of the language progressively. As it is the documentation seems mostly aimed to people who already know what they're doing here. |
@davidmankin thanks for the list. They're valid issues, but fixing all of them is also a sizable amount of work. As the trivial |
Thanks for the reply. I hoped that maybe since the caveat was written in 2019 that we'd be into the supporting users of the language. I'm not sure I understand what I'd use the library for. Maybe if I get far enough to understand the wuffs the language I could at least help contribute docs. As it is, I have no idea if what i'm doing is right or will work… |
My image viewer has reached general usefulness, and I'm inching towards something that could be called a stable version. I need PNG metadata readout: sRGB/iCCP/gAMA (for display, definitely want to take care of applying these independently) and complete support of text chunks (for thumbnails). I've recently seen commits tackling the former, but until text is finished, I must use another library. I probably won't use write support for that format, but it would be next on my list. My main issue with the codebase is that although the documentation is well above average, it's also quite lacking in places, in particular around the C API, and it's very hard to locate the pieces that are present. |
@pjanx I don't have an account to file an issue on the project page, so I'll mention it here. Where
You might want to also copy/paste this recent addtion to the Wuffs example programs:
This can noticably impact build times and binary sizes. Also, there's a comment later:
which might be obsolete, given that a few lines later, you say:
|
It's fine, I have actually tried the static functions some time ago and decided against them, as it didn't improve much for me, partly due to already using so much of the library. To the contrary, it produced Wuffs is currently limited in what it can identify. At some later point, I realised Wuffs' ‘registry’ is more or less arbitrary, and can be extended, so that comment could use some adjustments indeed. I actually might need to merge the common guesses of shared-mime-info (file-based), Wuffs (hardcoded), and gdk-pixbuf (plugin-based). |
It turns out I haven't had a good look at Gitea authentication settings, I should have GitHub OAuth sign-in now. Anyway, I'm here to say that Abydos also has a Wuffs plugin for image loading: http://snisurset.net/code/abydos/ |
I've got acquainted with Wuffs the Library when I was looking for a faster way to decode PNG images for the commercial computer vision product I develop at work. Previously it was using OpenCV (hence libpng with some wrapping code), and replacing it with Wuffs improved the decoding performance tremendously. I also look forward to the upcoming JPEG decoding support in Wuffs which seems very promising because as of now it shows performance comparable to libjpeg-turbo without even using SIMD. |
and
Thanks for the feedback. The C API could still do with some more docs per se, but I've recently pushed 129d800 that should contain a few more signposts for anyone in the future in a similar situation. |
@nigeltao |
Just enabled Wuffs for reading PNGs in glare-core: glaretechnologies/glare-core@bd7fc5e |
Some benchmarks: Not checking CRCs with either LibPNG or Wuffs. |
Sorry, not a useful note about users (yet!) but this issue is the first hit for [vim syntax wuffs] so I wanted to drop a note about a quick hack vim syntax repo here https://github.com/sgraham/vim-wuffs . It's "Christmas-tree style" though per my eye-preferences, and despite Nigel's protestations above. Patches welcome! |
Hello ! I would be interested in using wuffs to decode jpeg xl ! And before diving in, I would like to know if wuffs could handle progressiveness ? |
Wuffs' standard library has a JPEG decoder, which supports progressive JPEGs. Its GIF and PNG decoders also support interlacing and progressive output (producing an intermediate image when not all of the source bytes have been received). Wuffs has no JPEG-XL decoder yet. Wuffs does not have a 16k pixel limit. You may be thinking of WebP instead (which does have that limit). |
my bad, I found where I read about this limit, and it was indeed for webp https://github.com/nigeltao/qoir As a matter of fact, I was thinking of using the wuffs language, not the library... |
We integrated Wuffs into the Arm ASTC texture compressor about 18 months ago, primarily for faster PNG loading, but the improved robustness for bad images is a huge benefit. Thanks! |
This is not an issue so much as a lightweight way of gathering information on who is using Wuffs. This is mostly to satisfy our curiosity, but might also help us decide how to evolve the project.
So, if you use Wuffs for something, please chime in here and tell us more!
The text was updated successfully, but these errors were encountered: