New week, literally new Rust! What are you folks up to?
Lots of new never-before-seen content at https://serde.rs/. If anything is missing or unclear, please file a ticket or make a PR in this repo. I intend to leave nothing for the Rust Doc Day to do next month.
I also created
erased-serde which provides type-erased versions of Serde’s
Serializer traits so you can use them as trait objects like
&Serializer or boxed trait objects like
Box<Serializer>. See the readme or https://serde.rs/trait-objects.html for examples.
I filed some issues in the repository for the filters crate I wasn’t able to implement yet (maybe because these are too hard for me).
I also want to continue working on imag - but currently the build is broken (I assume it is cargo, not my code) and I have to wait for the cargo people to respond to the issue I filed.
Besides that there is my bachelors thesis which will be printed in the second half of this week and I have to apply the final fixes, so there’s not much time to work on rusty things right now - but next week and the week after that I will do a load of things - hopefully getting the
StoreId type fixed in imag so I can finish the implementation of the git hook stuff.
Work is still progressing on my live video ingest and distribution server.
Last week I created a crate to handle RTMP timestamps (u32 timestamps that can wrap around, with correct comparisons to handle wrap around cases) as well as messaging crate that allows the serialization and deserialization of common RTMP message types.
I was going to also replace my RTMP chunk deserialization code to use a
VecDequeue<T> instead of a
Vec<T> so I’m not constantly draining, but I opted to wait on that until I have some benchmarks in as I’m actually interested in the actual gains I’d see (or lack thereof!).
This week I plan to start coding the core FSM that will track the state of the RTMP session and provide an API for consuming messages and internal events, and allow it to return response messages and internal events triggered by the FSM processing.
I’m still having a slight existential thoughts about if switching from Elixir to Rust was the best choice in this (and my ability to keep the mio workflow low latency enough for my goals since I’ve never coded this style of system before) but I’m really enjoying Rust so far so that’s keeping me on track.
I hope to finish importing Fedora’s new packages this week. Rust itself is now there with 1.10, and my package for Cargo 0.11 just got approved. Then I’ll turn around and catch up to the new releases!
elastic_types to build again and released
0.4. It’s now using
serde 0.8, which has saved a bunch of boilerplate and made it easier to write macros for deriving mapping on
stable. Overall everything is roses.
Let me know what kind of changes you made; it’s possible that some of them might make sense to be upstreamed!
I’ve never written React before so they’re horrible changes But the gist of what I did was:
- Hide everything but the run button with a ‘tools’ toggle
- A bit of style change to make the output window fullscreen and buttons not stand out
- Not show the output window when loading a gist (since it was now fullscreen)
I don’t think any of them make sense on the hosted site, but I think an ‘embed friendly’ version of the playground done properly is an interesting idea.
On a related note the live samples worked out really well!
- Published ring on crates.io
- Published webpki on crates.io
- Made ring build on Windows (-msvc targets) automatically, with no need to install Perl, assemblers, or external libraries.
- In order to help people migrate their crates from rust-openssl to ring, I’m renaming all the symbols that conflict between ring and OpenSSL so that they can both be safely linked into the same executable.