What's everyone working on this week (25/2019)?

New week, new Rust! What are you folks up to?

Published range-split, a collection utility library applicable in particular to bytes. Working on UTF-8 safe wrappers for Bytes and BytesMut.

1 Like

I just published version 0.1.0 of the safe crate. It provides a #[safe] attribute macro which can be added to unsafe blocks to document constraints and such.

I’m also working on a wrapper crate for libsignal-protocol-c, a C library which does the crypto that secure messaging apps like WhatsApp and Signal use under the hood. The big thing we’re focusing on before our initial release is doing a safety audit and checking API soundness.

After that we’re going to start talking to Signal’s servers by creating a Rust version of the libsignal-service-java library. Contributors are always welcome!

3 Likes

I’m on my own little implementation of the Snake game, prompted by the reading of the termion blog, examples and games.
I try o implement the game by myself and rely on the examples just when I can’t do otherwise. I’m having a lot of fun.

Big thing I learn : how to use std::io::{self, Write, Read};. I still struggle getting some input through the game though… I’ll post a question on the forum in a minute.

1 Like

I’m working on a command line app that makes using other command line apps easier/possible. In my particular case, I wanted to use valgrind, but it I couldn’t just brew install valgrind because:

“the formula either does not compile or function as expected on macOS versions
newer than High Sierra due to an upstream incompatibility.”

I’ve been loving Rust and this was an excuse to study some rust code bases, reinvent the wheel a bit, and just have a good time.

The general idea is bridging the gap between my terminal (and code) and a containerized app running
Ubuntu.

I’m new to Rust and would appreciate any and all feedback on the project, thanks!

Been working on fixing the various glitches that have been preventing flo_curves from correctly adding up very large and complicated paths. Mostly it’s been figuring out a reliable way to deal with a literal corner case: when a ray hits a vertex exactly, it can either be crossing into the shape or just grazing off a corner, which gets tricky at very shallow angles or when floating point issues cause only a single collision from the two edges at a corner to register.

Here’s the before and after images for the test sketch I’ve been using (which is conveniently full of fiddly bezier curves in shapes that a ray casting algorithm might find difficult):

I’ve also released a new version of desync out that fixes a needless panic in the future() call.

Finally, I spent some time upgrading the http UI code for FlowBetween, which is what all these other crates are there to support from actix 0.7 to the new 1.0 version, which was mainly a case of deleting code, something that seems to be a good endorsement of the new API.

With that all done, I want to spend this week starting work on using flo_curves newly reliable pathfinding to give FlowBetween’s brush tool a few more features, in particular the ability to build up paths additively, and similarly make the eraser tool able to subtract from and split paths apart.

1 Like

I have started exploring glium. It has been awhile since I last used OpenGL ( in C ) and it is just amazing how easy it is to get things done with glium compared to raw OpenGL calls.

1 Like

I just announced here Termimad. If some people are interested, I’ll probably have features to respond to.

In the opposite case, I’ll try to steal my wife’s computer to try improve the Windows version of broot. Making a cross-platform application is a little more difficult when you don’t have access to a Windows computer… I’d be happy to get help from a rust developer programming on Windows and willing to test and/or contribute to broot.

2 Likes

uom (type-safe zero-cost dimensional analysis) was the crate of the week in TWiR last week! All the extra traffic brought some new issue submissions and PRs which I’ve been responding to. I also fixed a codegen issue that was creating non-zero cost code (value + 0.0 doesn’t get optimized to value for floating point numbers)! This week I’m planning to get a new release out.

2 Likes

Finally getting back to work on Tetra (my 2D game framework) now that I’m settled in at my new job :slight_smile:

My current focus is on trying to decouple the core of the engine from SDL and OpenGL. I’d like to get it running on WASM and/or Vulkan someday, and this seems like a good first step towards that!

3 Likes

Playing around with constant-length iterators, trying to replicate the Iterator/FromIterator/IntoIterator trio into variants whose lengths are known at compile time and which, most importantly, can be collected into arrays. Writing down plenty of TODOs and FIXMEs as I move around.

Hopefully that can serve as a nice design input for the const generics prototype on nightly, given that “making arrays great again at last” is one key reason for their existence.

But honestly, I’m a bit surprised that most of the issues which I encounter actually lie within the trait system, not handling of const generics per se, although those certainly have their share of silliness.

3 Likes

I worked on a couple of Blender scenes, which can be rendered directly now:

See release notes for more details …

2 Likes

I’ve started coding for a new project called Arsenal. It’s going to be a Blender integrated game engine built on Amethyst ( see this forum topic ). So far I’ve gotten a very basic glTF exporter for Blender written in Rust that can export meshes 22 times faster than the official Khronos group glTF Blender plugin.

2 Likes

Just released 1.1.0 of #Rustlang schema_registry_converter https://crates.io/crates/schema_registry_converter but If I want to keep up with #Java I have some additional work for secure access to the confluent schema registry.