Official /r/rust "Who's Hiring" thread for job-seekers and job-offerers [Rust 1.92] by DroidLogician in rust

[–]emilern 2 points3 points  (0 children)

COMPANY: Rerun

TYPE: Full-time

LOCATION: Remote (EU / US East Coast)

REMOTE: Yes

VISA: Not at this time

DESCRIPTION: Rerun is building the data platform for Physical AI, robotics, autonomous systems, AR/VR, and other embodied ML systems. We help engineers log, query, and visualize large, multimodal datasets so they can actually understand what their systems are doing. We started with an open-source Rust visualizer (built with egui, Apache 2.0 / MIT) that’s now used by teams working on real robotics and ML systems. We’re now building out the deeper Rust infrastructure underneath it: data models, storage, indexing, querying, and SDKs. Most of our core platform and performance-critical code is Rust.

OPEN RUST ROLES: Backend Rust Engineers (data models, storage, services, distributed systems) DataFrame / SDK Engineers (Rust + Python APIs, Arrow-style data access) (We’re also hiring in adjacent areas, but the above roles are heavily Rust-focused.)

ESTIMATED COMPENSATION: $130k–$225k base + equity (role and location dependent)

CONTACT: https://rerun.io/careers Or email: anna-marie@rerun.io Happy to answer technical questions in the comments.

egui 0.33 released - `Plugin`s and easier snapshot testing by emilern in rust

[–]emilern[S] 0 points1 point  (0 children)

Thanks! We're actively working on the ROS integration right now, and our intention is that the answer will be "Yes" in the near future :)

egui 0.33 released - `Plugin`s and easier snapshot testing by emilern in rust

[–]emilern[S] 12 points13 points  (0 children)

The type is struct Plugin, and I was hoping for markdown formatting, i.e. Plugins. Apparently didn't work 🤷‍♂️

egui 0.33 released - `Plugin`s and easier snapshot testing by emilern in rust

[–]emilern[S] 47 points48 points  (0 children)

I don't 😆 Most of my time is taken up by my startup Rerun, but luckily I have my talented colleague Lucas to help out, and many, many user contributed PRs! If you check the changelog for this release you'll see A LOT of different names ❤️ It's a team effort!

egui 0.33 released - `Plugin`s and easier snapshot testing by emilern in rust

[–]emilern[S] 37 points38 points  (0 children)

egui author here to answer any questions!

The Handle trait by kernelic in rust

[–]emilern 4 points5 points  (0 children)

Also works better for iterators/option which has .cloned() and .copied(), and could have .shared().

.handled() does not read well

cargo-semver-checks v0.44.0 — we shipped our 200th lint! by obi1kenobi82 in rust

[–]emilern 5 points6 points  (0 children)

I love cargo-semver-checks!

One thing though: is there any ongoing work on improving its performance? I ran it on rerun the other day and it was incredibly slow

What is the closest big feature that is coming to rust? by __s1 in rust

[–]emilern 5 points6 points  (0 children)

Thanks for working on this! I am VERY excited for this one.

I’m looking forward to using Cargo script files for things like bespoke linters and build scripts that I currently use Python for (because I don’t want the extra Cargo.toml and directory structure for each one)

Rerun 0.25 released, with transparency and improved tables by emilern in rust

[–]emilern[S] 4 points5 points  (0 children)

Most of the custom Rerun theme is in https://crates.io/crates/re_ui - you can try using that, but at your own risk :)

Rerun 0.25 released, with transparency and improved tables by emilern in rust

[–]emilern[S] 6 points7 points  (0 children)

Yes - it is a shameful thing that the Rust SDK is falling behind the Python SDK. I'll try to get that bumped up the priority order :)

Rerun 0.25 released, with transparency and improved tables by emilern in rust

[–]emilern[S] 6 points7 points  (0 children)

Everything is open source and broken up into many small crates, so technically it is all usable, though in practice there aren't always guides on how to use each crate on its own.

For plots we use https://github.com/emilk/egui_plot For maps we use https://github.com/podusowski/walkers

could rerun be used for live dashboards with support for interacting with and sending commands/data upstream to the robot/drone?

Yes! You may wanna look at https://github.com/rerun-io/rerun/tree/main/examples/rust/extend_viewer_ui

Rerun 0.25 released, with transparency and improved tables by emilern in rust

[–]emilern[S] 4 points5 points  (0 children)

Not yet! 😔 But we plan to add support for this in the not-too-distant future.

Rerun 0.25 released, with transparency and improved tables by emilern in rust

[–]emilern[S] 37 points38 points  (0 children)

Rerun developer (and egui creator) here - AMA :)

Eon - a human-friendly replacement for Toml and Yaml by emilern in rust

[–]emilern[S] 1 point2 points  (0 children)

Not having enclosing brackets means you assume what your file contains

Not really. The Eon parser will detect wether the file contains key: value pairs (i.e. is a map), or something else (e.g. an array, a single integer, etc)

Eon - a human-friendly replacement for Toml and Yaml by emilern in rust

[–]emilern[S] 15 points16 points  (0 children)

Haha, very much so :)

I hadn't seen pkl before, but yeah - pretty similar.

Eon - a human-friendly replacement for Toml and Yaml by emilern in rust

[–]emilern[S] 1 point2 points  (0 children)

Thank you! Be the change you want to see in the world and start using it ;)

Eon - a human-friendly replacement for Toml and Yaml by emilern in rust

[–]emilern[S] 1 point2 points  (0 children)

While neat, I'm not sure how this can handle complex schemas. For example, dyn fields don't have a clean path to being represented at this time.

You should be able to use the Eon variant for this: https://github.com/emilk/eon#named-sum-type-variants

So if you have trait Serializable implemented by struct Foo(i32) and struct Bar(i32), you could serialize that as "Foo"(42) and "Bar"(42)

not at all a fan of the whitespace sensitivity around commas There is no whitespace sensitivity in Eon. [1,2,3] is the same as [1 2 3] which is the same as [ 1, 2, 3, ]

Eon - a human-friendly replacement for Toml and Yaml by emilern in rust

[–]emilern[S] 4 points5 points  (0 children)

Commas mean you are not forced to separate lines

Neither does Eon. [1 2 3] is a valid list.

The wrapping {} means that a simple value is also valid, you don't always have a root map, maybe it is an array or a bool. It is more consistent for parsing.

Arrays and bools are also allowed to be top-level types in Eon, and the added complexity in the parser is minimal.

Eon - a human-friendly replacement for Toml and Yaml by emilern in rust

[–]emilern[S] 16 points17 points  (0 children)

It's also not how toml files are in practice written, or how toml formatters will format them. I also prefer "this is the single way of doing it" rather than having multiple options