What's everyone working on this week (7/2018)?


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


Just finished the schema definition language (sometimes called IDL) support in graphql-parser. There some things to work in it such as tweak error reporting, but overall crate supports whole graphql syntax and should be pretty usable.


Learning how to cross compile for my NVIDIA Jetson TX2 and reading through Chapter 4 in my O’Reilly book on “Ownership”! Becoming less and less of a newb everyday. rusttx2


Decided that MPLv2 might be the best option for weak copyleft licensing in Rust after all, and switched my crates to that.


Working right now on updating the reverse proxy codebase, so that it will work with reformed tokio crate (and its dependencies too). After it, I’m going to make a couple of performance tests for getting understanding for does it work good or not. Probably will make a release if everything looks good, at least for the first iteration.


Released imag 0.6.0 and shortly after imag 0.6.1 with two important bugfixes for imag-init.

Now, refactoring some things and then starting implementing more features. I guess imag-wiki and imag-calendar will be my next two targets. Also: finishing masters thesis.


A reason why I prefer to launch a beta version first


Yeah, I’m still in 0.x.y, so I don’t think that’s too bad. Pre-1.0.0 things might happen. There are more things that are not nice and should be done properly… my 0.x releases, as the release blog post says (“This is not production-ready software. Use at your own risk! Make sure you have backups”), are “hey, have a look” … not “it’s ready, use it now!” :smile:


I’ve been experimenting with enriching log records from the standard log macros with extra properties using ambient scopes, with support for carrying those properties in Futures so they can be carried across threads. The result is on GitHub. I might find time to go and polish it up, and use similar plumbing for a futures-compatible slog-scope.

I’ve also got a PR in elastic that adds some first-class bulk support I need to finish up.


Working on uuid with the rest of the team, as 0.6.0 is planned to be released this week. Working on finishing touches for it.


I used deps.rs for the first time to ensure the dependencies of rs_pbrt are up to date. I also started working on bi-directional path tracing (see issue 29), but I do not expect it to be done within a week :stuck_out_tongue_winking_eye:


Using Rust at System76 to develop Distinst for Pop!_OS & Elementary 18.04: a powerful Linux distribution installer backend with full partitioning capabilities, and soon to feature LVM + LUKS encryption support. Currently at ~5K LOC.

The libparted Rust bindings (~1.5K LOC) were developed to perform partition table manipulation. Native Rust code is being used to perform mounting, creating temporary directories, managing partition layouts across multiple disks, verifying mount targets, and moving partitions. Some external commands are being used for filesystem-specific tasks, such as mkfs, fsck, resize2fs.

Interestingly, this seems to be lower level than GParted, which simply shells out to mkdir, dd, ddrescue, & mount/umount for its functionality, even though these operations should be simple enough to implement by hand.


Implementing the Wasm tool wasm-sign

The WebAssembly module signing and verification tool to proof authenticity and integrity of WebAssembly bytecodes. The signature is attached as Custom-Section to the end of the module. The signed module can be transfered over network. Recipients parsing the signed module will ‘see’ an additional Custom-Section of type 0 and name ‘signature’. The Signature adds an overhead of 86 bytes.


Working on Blockchain implementation in Rust.
Having trouble with Proof-Of-Work part, can anyone help me out with it?
The code


I’ve been playing around with running rust on a stm32 microcontroller. The past few days i’ve spent trying to communicate with a ESP8266 wifi module. I finally have something working and have found some bugs in the stm32_hal crates.


I added a new test scene (which originally comes from the Radiance renderer):

I also solved an issue which allows me to compile (again) with Rust stable. See Travis build


I’ve also added a timestamp (SystemTime) parsing and formatting to humantime. Currently, it’s v1.1.0-beta.3. And since we’re in post 1.0 release cycle it would be greate if more eyes take a look at it (so we don’t have to bump major version unnecessarily in future).

Note, that since humantime supports basically one timestamp format (rfc3339) it’s super-fast:

     Running target/release/deps/datetime_format-7e6d1b8a3104a052

running 2 tests
test rfc3339_chrono            ... bench:         730 ns/iter (+/- 21)
test rfc3339_humantime_seconds ... bench:          73 ns/iter (+/- 3)

test result: ok. 0 passed; 0 failed; 0 ignored; 2 measured; 0 filtered out

     Running target/release/deps/datetime_parse-a94d440d098fed48

running 6 tests
test datetime_utc_parse_millis  ... bench:         226 ns/iter (+/- 11)
test datetime_utc_parse_nanos   ... bench:         236 ns/iter (+/- 2)
test datetime_utc_parse_seconds ... bench:         205 ns/iter (+/- 4)
test rfc3339_humantime_millis   ... bench:          28 ns/iter (+/- 1)
test rfc3339_humantime_nanos    ... bench:          35 ns/iter (+/- 1)
test rfc3339_humantime_seconds  ... bench:          25 ns/iter (+/- 1)

So if you don’t need all the features of chrono this might be your choice.


Trying to be less of a n00b by hacking on piston and servo.