Survey: What libraries would you like to see in the future?

This is just a way to get a feel for the community's collective desires. Now that we've hit 1.0, there is no obstacle to people writing long-lasting, useful community libraries.

Re: A-Community-Library tag on Github issues: The nature of writing an issue that is publicly displayed and notifies everyone that there is a new issue means there is a barrier to anyone who merely wants to add a quick "You know what would be cool?" statement. This thread is for library suggestions that have the weight of a comment, not an issue.

1 Like

One source of libraries which people have asked about in rust is the A-community-library tag on issues in rust-lang/rfcs which denotes a library which at least someone wants to be built for rust. There are probably other sources for this as well (like this thread), but that's one of the current places where library requests are made.

2 Likes

Experience and common abstractions. There's also the perennial problem of "this interface would be so much better with $FEATURE; I'll just wait until that's stabilised."

1 Like

As i have written here: Stdx - The missing batteries of Rust - #12 by yongqli

I'd take a look at pythons standard library or their more modern replacements (like the requests module instead of urrlib, etc)

3 Likes

Would love if someone created an ASN.1 compiler and encoder/decoder. I'd like to move some of my SNMP work over to Rust but the few times I've started digging into ASN.1 it's felt too deep a side project to start right now. I've seen a few starts but they all seem abandoned or very incomplete.

I'm seriously looking for a network library with high performance, multithreading, crossplatform(IOCP and epoll) and I/O async stuff. Something that is similar to boost asio or ACE in C++.

Unfortunately, MIO considers "Thread pools / multi-threaded event loop" as "Non-goals"

It does not have thread pools by itself, but for the events and asynchronous events, I very much like libev. Making a binding would be interesting. There is this repository, but it is empty :-(.

1 Like

GitHub - alex/rust-asn1: A Rust ASN.1 (DER) serializer. ?

Aside from this, I would love a library that exposed UDP holepunching capabilities atop the existing network stack.

Also I would like to see a generalized pattern/support-library for language bindings to allow rust to host garbage-collected dynamic languages (e.g. I want to work on some chibi-scheme bindings, and I'm left studying the existing high-level lua and spidermonkey bindings to discover how they're doing various things).

Metrics!

That's a very limited subset of ASN.1, only supports DER, and only supports serializing, not deserializing or compiling schemas to rust.

JavaScript sandbox engine with importing Rust functions into javascript running environment like Java Nashorn Oracle Nashorn: A Next-Generation JavaScript Engine for the JVM

I started working on a V8 wrapper the other day, we'll see how it goes...

https://crates.io/crates/igd

I would really like to see an ergonomic async story: async I/O, interaction with coroutines and/or green threads (+M:N), and channels that can be selected over (both with select! and programmatic registration). I'm currently finding myself spawning way too many threads on resource-constrained systems... The lack of std::sync::mpsc select stability tends to hurt too.

1 Like

chan has a select macro that works on stable with send/receive operations with a mpmc channel. (Programmatic registration necessarily exists for the macro, but it is an undocumented/inconvenient interface at the moment. Happy to get help iterating on that design.)

I would love to see more momentum on the native ZeroMQ stack: https://github.com/zeromq/zmq.rs .

2 Likes

How about a well designed GUI library? Long story and lots of pain, right?

2 Likes

[quote="sumproxy, post:19, topic:2234"]
How about a well designed GUI library?
[/quote]What I'm waiting for is the end of object disoriented GUI programming and the move to fully concurrent, CSP or actor styled toolkits.

1 Like