image-rs / image

Encoding and decoding images in Rust
Apache License 2.0
4.86k stars 597 forks source link

Start a Rust image working group #732

Open bvssvni opened 6 years ago

bvssvni commented 6 years ago

Here are some stats:

Yet, even this crate being this popular, the burden of reviewing PRs, responding to issues and driving it forward has been on @nwin 's shoulders for a long time. I'm listed as the second highest contributor, but I've not been actively participating in the design but just helped keeping versions updated. Most of the hard work is thanks to you guys who are making PRs!

So, I wonder if there any ways we can, if not shift the burden entirely, involve more people and make it more fun to contribute and helping others. I'm sure that out of the many users of this crate and projects that think this is important, there are somebody who have ideas.

Just to kick off this discussion, how about starting a Rust image working group? Can we create a collaboration between projects that work with images and Rust? How can we make this activity more visible in the Rust community?

gasabr commented 6 years ago

I think it's a great idea to unite people working on image processing in Rust! From my small experience I can tell that Diesel is organised very well, probably, something could be bothered from there. For, example gitter chat where people can ask questions, get in touch with active contributors and users. It could be the chat not just about this crate, but for everything image-related in Rust

Also I noticed that milestones can be very helpful in the sense that new contributor always knows what are the current goals of the project. Maintainers can just set them for one or 2 versions upfront, leave a link somewhere in README and I think there will be enough interested rustaceans to implement all the wishes and fix known bugs.

bvssvni commented 6 years ago

This sounds good! I've created a chat room here https://gitter.im/PistonDevelopers/rust-image-group

It was everything image-related in Rust that I had in mind.

gasabr commented 6 years ago

@bvssvni Don't you think posting the same text on r/rust would be a good idea?

bvssvni commented 6 years ago

Done: https://www.reddit.com/r/rust/comments/816fgv/start_a_rust_image_working_group/

dobkeratops commented 6 years ago

I dont follow this so deeply at the moment but this sounds like a great idea; I did use the image crate, found it useful, and did have some ideas on how it could be more useful to other types of image processing ( but I realise nothing will satisfy everyone).

What do you imagine the boundaries to be? (not meaning to push feature-creep on you..)

bvssvni commented 6 years ago

@dobkeratops We're open minded. The point is to get more people interested in the image ecosystem in general. For example, your idea of a texture server on r/rust_gamedev. Perhaps other people are interested in joining?

I am interested in image editors and procedural generated textures. Maybe a Dyon environment dyonimage <program.dyon> that leverages existing image processing such as imageproc. Also, the work on the Rust to SPIR-V compiler might make it possible to do extremely fast image processing that also runs on the CPU.

dobkeratops commented 6 years ago

ah texture server, thanks for reminding me about that.

a procedural texture system with a conrod interface built for it would be rather nice..

pedrocr commented 6 years ago

I'm not sure what's being suggested. The current image crate has a good boundary already in my opinion. It's for reading/writing bitmap formats. I'm the author of rawloader and chimper and I use image to load non-RAW images in chimper. There's currently an image processing pipeline inside rawloader that I need to make an independent crate itself. Part of the power of the rust ecosystem is having smaller crates that are reused often. Trying to stuff a lot more into image would be a mistake in my opinion. Maybe we could do more to make sure common traits exist that are reused between crates?

bvssvni commented 6 years ago

@pedrocr It's not about stuffing more into image. It's about collaborating between projects.

pedrocr commented 6 years ago

@bvssvni I guess you mean something like this then?

https://internals.rust-lang.org/t/announcing-the-cli-working-group/6872

If so it sounds good to me. I've been working on several crates to allow me to build my perfect image editing environment (currently chimper/syncer/rawloader/multicache) and registered #chimper on the mozilla IRC to hang out and discuss things with people. I'm happy to join other people in discussing these kinds of things there or anywhere else. Personally I prefer IRC and there's already a fairly large rust community on the mozilla servers.

bvssvni commented 6 years ago

@pedrocr Precisely.

dobkeratops commented 6 years ago

ok fair enough, i did suspect i was talking about excessive feature creep. I just remember wanting a little more in the formatting of what it loads images into (channels etc) but you're suggesting a separate image-processing crate. Could more specific names communicate this better ('ImageFileFormats crate vs ImageProcessing crate' etc). I think what sometimes takes a little thought is where to define the interfaces that many seperate pieces depend on , r.e. the coherence rules

alteous commented 6 years ago

This crate violates the naming conventions and the use of the Deref trait recommended by the Rust API guidelines. Is there any motivation to address this?

nwin commented 6 years ago

@alteous: could you please open a separate issue on this? And be more precise where it is violated? Since this crate is much older than the API guidelines it could violate it virtually everywhere...

alteous commented 6 years ago

Sure. It had not occurred to me that the crate is older than the guidelines! I have raised https://github.com/PistonDevelopers/image/issues/741.

arthmis commented 5 years ago

are you all open to questions on how to use functions for this crate in https://gitter.im/PistonDevelopers/rust-image-group ? I don't want to sign up only to find that nobody is actively participating.

HeroicKatora commented 5 years ago

I'm watching the group and can provide some guide-level discussions and would respond, within obvious limitations. Just respect that I want to stay out of project management and/or future directions etc. for the while as those obligations would be overburden me.