Update: These have both been completed. Thanks!
We have a couple of feature requests in smallvec
that could be implemented as one-line functions (plus some simple tests):
https://github.com/servo/rust-smallvec/issues/184
https://github.com/servo/rust-smallvec/issues/178
CAD97
December 19, 2019, 7:56pm
284
I'm looking for some help in reviewing/improving documentation for four small, related crates, as well as writing tests exercising the API.
opened 07:23PM - 19 Dec 19 UTC
documentation
enhancement
help wanted
good first issue
I try to write great documentation, but I need others' eyes to make sure it's go… od. Check out the [master documentation](https://cad97.github.io/pointer-utils/erasable/) and put any feedback in this thread. (Actionable issues may of course still get their own issues.)
opened 07:54PM - 19 Dec 19 UTC
closed 01:06AM - 10 Feb 20 UTC
enhancement
help wanted
good first issue
As of current, there are basically no real tests of the functionality defined in… these crates. This needs to change. Because we do unsafe pointer mangling, it would be great to get good test coverage and run tests under miri as a sanitizer to make sure we aren't causing any problems.
I posted the review request separately as well.
We got a nice issue for simd-json.rs today and I wanted to share it. It is not super hard but has challenging parts (a mini parser) and can be fun to do since results will be directly usable and tackles a few different angles (perf, usability, api design). If someone finds this interesting but isn't sure they are up to it I'll gladly spend some time mentoring.
opened 01:59PM - 23 Dec 19 UTC
enhancement
help wanted
good first issue
medium
Do simdjson have flattened JSON access? (similar to https://github.com/pikkr/pik… kr)
Will, there be any performance improvement if I use flattend json access?
----
## Added by @Licenser as an issue description
The [`Tape` struct](https://github.com/simd-lite/simdjson-rs/blob/6292255c501a727efe8847f436811e50ee8f3ffe/src/value/tape.rs#L7) should be querieable via a simplified version of [JSONpath](https://goessner.net/articles/JsonPath/) (section 3.2 in the paper linked below).
To achieve this we need at minumum:
* [ ] a parser that takes a query string and turns it into a digestible format
* [ ] a function that takes said format and applies it to a `Tape`
* [ ] support for `.<field>` to query a object field
* [ ] support for `[<index>]` to query array indexes
* [ ] support for nesting those two
* [ ] sufficient tests to cover the code (sufficient here is defined as 'does not drop crate coverage' or better)
Additional JSONpath operators are welcome but optional.
I have an issue that somebody can work on:
opened 07:27AM - 23 Dec 19 UTC
closed 07:24AM - 05 Apr 20 UTC
good first issue
Pointer to the source code: `src/backend/jack_backend.rs`, look for `TODO: SysEx… event`.
imsnif
January 5, 2020, 4:36pm
287
We have some issues in bandwhich
that could use some work, some of them bite sized and good for beginners:
opened 12:13PM - 23 Nov 19 UTC
closed 05:15PM - 14 Jan 20 UTC
enhancement
help wanted
Right now, the UI works by looping every second, displaying the bandwidth utiliz… ation and then clearing it. This gives us an accurate and no-fuss bandwidth-per-second display, but also provides for a less-than-ideal user experience, since utilization information can flicker in and out if it is short lived.
A possible solution would be to log the bandwidth utilization for the past N seconds* and then average it out in each display loop iteration.
Note that raw_mode should still work the same (displaying just what happened in the past 1 second).
*I wouldn't want N to be configurable, but I'm not sure what it should be - my gut says 10 but I think it should be tested to see what looks best
opened 04:27PM - 05 Jan 20 UTC
closed 05:24PM - 11 Mar 20 UTC
help wanted
good first issue
Right now this function: https://github.com/imsnif/bandwhich/blob/6190391601d6f7… de004b3ec85685e94e816750da/src/os/shared.rs#L34
Uses std::io::Error, probably not as it was intended, in order to differentiate between a permission error, a general network error and an unknown interface type (one that `libpnet` does not support).
It would be nice if we had our own error type for this, that would allow us to have the same functionality we have now (alerting the user that they need more permissions, recommending they run with sudo, or indicating that it could not find any interfaces to listen on).
This pattern might be a good option, though I'm not 100% sure it will fit in this case: https://rust-lang-nursery.github.io/failure/error-errorkind.html
opened 04:30PM - 05 Jan 20 UTC
closed 10:06PM - 10 Jan 20 UTC
help wanted
When the user presses space, we will pause the application - leaving what's on t… he screen so that they can read it with ease. Pressing space again should resume bandwhich.
While bandwhich is paused, it would be nice to have a visual indication for this: bonus points if it's noticeable but not annoying. :)
Help me port hyper and body-image-futio to async-std so we can run comparative benchmarks, as reported here for tokio :
Alternative title: "I block your reactor threads and `Sink` your battleship."
http://gravitext.com/2020/01/13/blocking-permit.html
This blog post is about a couple of benchmarks along with some new crate releases, but conclusions are inevitably drawn, about the nature of blocking operations in asynchronous runtimes.
Its sort of a followup to Futures 0.3, async♯await experience snapshot
To quote the new post:
…the massive async♯await upgrade has been completed, including a reasonably pleasa…
Implementing a simple derive in SQLx with mentoring instructions from a proc-macro guru (me):
opened 08:23AM - 07 Jan 20 UTC
closed 09:15PM - 24 Jan 20 UTC
enhancement
good first issue
help wanted
I don't want to define what anything but 1-arity tuple structs means at this tim… e. We are going to explore derives for custom types in the near future.
From #5
1 Like
epwalsh
January 17, 2020, 12:17am
290
Working on a Rust implementation of Celery with the goal of being fully compatible with the Python version so that tasks can be sent from Py -> Rust or vice versa.
Any issue marked "Status: Help Wanted" would be a good place to start for newcomers.
jhpratt
January 18, 2020, 10:29pm
291
Implement function returning the local UTC offset for the time crate
I don't have the necessary knowledge or experience to be able to do this, let alone appropriately. A PR will happily be accepted. I can do the documentation and tests.
tesuji
January 23, 2020, 1:59am
292
Quoting from @XAMPPRocky in https://github.com/rust-lang/rust/issues/29497#issuecomment-573353391 :
Someone needs to merge the remove_dir_all
code into the standard library. This is a crate that created as a quick workaround for crates from an implementation from #31944 that never got merged. It's been pretty stable over the past few years, and is used in cargo and rustup.
Since creating the crate, I no longer have a Windows machine. As a result I do not intend to maintain the crate. It would be great if someone could port the code into std so that everyone can have a reliable implementation on windows.
If I had a Windows machine, I may try that issue.
I'm making a WebAssembly demo for the arcs
crate and was wondering if someone could give me a hand.
opened 11:47PM - 27 Jan 20 UTC
To be a CAD program our WebAssembly demo actually needs to draw things.
There… should be a toolbar with buttons to enter specific "drawing modes". When you are in a mode the corresponding button stays pressed (letting the user know which mode they're in) and things like click events get passed to that mode.
For now we'll want to implement a formal mode system, with modes for:
- [ ] Drawing points
- Clicking on the canvas adds a point where the user clicked
- [ ] Drawing lines
- Clicking on the canvas once will set the line's start point
- Once the start point is selected, moving the mouse around will draw a line from the start point to the cursor which follows the cursor as it moves, providing the user with visual feedback on the line they're in the middle of drawing
- Clicking again will select the line's end point and add it to the drawing
- [ ] Drawing arcs
- I'm not 100% sure how we want to implement this one
The standard way to implement these modes is with some sort of state machine. I prefer trait objects over enums or strongly typed state machines because they scale more easily and are easier to work with.
```rust
pub trait Mode {
fn on_mouse_down(&mut self, args: MouseDownArgs, world: &mut World) -> Transition {
Transition::DoNothing
}
fn on_mouse_move(&mut self, args: MouseMoveArgs, world: &mut World) -> Transition {
Transition::DoNothing
}
}
pub enum Transition {
DoNothing,
ChangeState(Box<dyn Mode>),
}
```
(note: this is a big task and will probably require breaking into a dozen smaller issues along the way)
I'm more than happy to help mentor.
Diesel is looking for persons willing to do some code review on submitted PR's. You don't need to be familiar with Diesel's internals to help. We are happy to answer any question about any code fragment that comes up in a review, so that's a great way to improve your understanding rust's trait system and how to build complex systems on top of that.
jhpratt
February 4, 2020, 10:26pm
295
I got some good info & code last time around, but I still need someone (or many people!) to do a code review of the gist linked in the comments here. Mostly centering around correctness (which I'm pretty confident on) and safety (syscalls).
The image
crate reworked its error types in the latest release. The new types can provide much more information such as underlying error sources, ties to the format, etc. however the existing decoders and encoders do not currently fill in that information. We're looking for contributions to migrate these to the new representation in this tracking issue .
realcr
March 6, 2020, 10:49am
298
Hey, the Offst project has an open issue regarding adding rust android builds to the CI :
opened 10:44AM - 06 Mar 20 UTC
closed 12:13PM - 02 Apr 20 UTC
enhancement
help wanted
Offst's `stcompact` binary is designed to work on mobile devices, specifically o… n Android.
We want to compile it for the following architectures:
- aarch64-linux-android
- armv7-linux-androideabi
- i686-linux-android
More specifically, we want the CI to compile for those architectures during testing, and create a release binary when a new version tag is pushed to this repository.
Currently the automatic CI build system compiles and tests Offset for Windows, linux and macos.
Building for the Android architectures mentioned above is probably a bit different, because cross compilation is required.
I managed to perform cross compilation successfully on my machine (Ubuntu 18.04) by following the instructions from [mozilla's website](https://mozilla.github.io/firefox-browser-architecture/experiments/2017-09-21-rust-on-android.html), with some minor modifications:
- Install android sdk
- Install ndk
- `export NDK="/home/real/Android/Sdk/ndk/20.1.5948944"`
- Add symbolic link: `ln -s $NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android26-clang $NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-clang`. Should add a similar symbolic link for the other two architectures.
- Add `$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin` to `$PATH` environment
variable
- Create `~/.cargo/config`, containing:
```toml
[target.aarch64-linux-android]
ar = "/home/real/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar"
linker = "/home/real/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-clang"
[target.armv7-linux-androideabi]
ar = "/home/real/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-android26-ar"
linker = "/home/real/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-android26-clang"
[target.i686-linux-android]
ar = "/home/real/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android26-ar"
linker = "/home/real/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android26-clang"
```
- Finally, create a release using `cargo build --target aarch64-linux-android --release`
I need some help with making this work on the travis CI. My current gap in knowledge is how to install the android SDK and the NDK on the travis CI. Alternatively, maybe travis CI has special support for this case.
I included an outline of how to perform the build on my own machine, but some I think some creativity is still required when attempting to make it all work on a CI system. Any help is appreciated!
joshlf
April 22, 2020, 6:57pm
301
A good easy task and one of the blockers for clap 3.0
https://github.com/clap-rs/clap/issues/952