Rust Nation UK
Rust Nation UK
  • 56
  • 333 748
Aida Getoeva - Async C++/Rust Interoperability
Bringing asynchronous C++ code to the safe grounds of Rust can be scary. Segmentation faults and memory leaks can make their way across the bridge and hide under the safe wrapper-covers. So let us delve into the inner workings of asynchronous interaction and ensure safe C++/Rust interoperability using CXX library.
zhlédnutí: 1 042

Video

Tim McNamara - 4 levels of error handling
zhlédnutí 5KPřed měsícem
Rust's errors can be confusing. Strengthen your code one level at a time. Learn how to start with an easy path and grow as you knowledge increases. We start with 'good enough' approaches, then move towards something that's more idiomatic over time. This talk is highly interactive with lots of live coding and examples to follow. So grab your laptop and follow-along!
Mithun Hunsur - Ambient: A Rust and WebAssembly Runtime for Cross-Platform Multiplayer Games
zhlédnutí 1,9KPřed měsícem
Discover the power of Rust in WebAssembly with Ambient: an open-source runtime for high-performance multiplayer games and 3D applications (using WebGPU) that runs projects built in WASM, with the runtime itself running on WASM for the web. Learn how Rust's unique strengths enable Ambient and make it an ideal choice for complex projects. Explore how Ambient supports cross-platform development, r...
Alice Ryhl - What it takes to keep Tokio running
zhlédnutí 3,4KPřed měsícem
Most people don't see the work that goes into maintaining open source software. It's not just about writing code - it's also about reviewing PRs, helping new contributors, answering questions, fixing bugs, and writing documentation. In this talk, you will hear stories that explore the invisible work of open source software maintenance and discuss the challenges and rewards of this important work.
Chris Biscardi - Bevy: A case study in ergonomic Rust
zhlédnutí 10KPřed měsícem
The Bevy game engine is a project with a massive scope… yet it still remains a modularly usable collection of crates with ergonomic APIs. In this talk we’ll dive into the approaches Bevy uses to make game programming accessible to beginners and experts alike, and how you can use the same techniques to build more ergonomic Rust APIs.
Pietro Albini - How Ferrocene qualified the Rust Compiler
zhlédnutí 2,1KPřed měsícem
Industries like automotive or aerospace require safety-critical software to be certified according to international standards, recommending the development with qualified tooling. Ferrocene is an open source distribution of Rust qualified for automotive and industrial use, bringing Rust to safety-critical industries. In this talk, I'll show what is needed to qualify a compiler toolchain, what c...
Ben Wishovich - Full Stack Rust - Building Rust Websites with Leptos
zhlédnutí 6KPřed měsícem
Rust has been proven to be a strong choice for backend web services, but new and upcoming frameworks like Leptos have made it a strong choice for building interactive frontend web UIs as well. Come learn how to build a full stack Rust web app with Axum and Leptos, leveraging the power of Rust to deliver web apps rivalling any Javascript stack.
Natalie Serebryakova - Rustic Persistence: Automating PVC Lifecycles with Rust in Kubernetes
zhlédnutí 467Před měsícem
This talk will cover how easy it is to develop Rust-based Operator in Kubernetes using an example of an operator for Managing the PVC Lifecycle. The featured Kubernetes Operator proactively manages PVCs and associated Persistent Volumes (PVs), overseeing their states to automate tasks such as backup and restoration. The utilization of Rust's capabilities for safe memory access and advanced conc...
Daniel McKenna - Creating a Text-To-Speech System in Rust
zhlédnutí 808Před měsícem
Text-To-Speech (TTS) systems are challenging: touching on topics such as text processing, signal processing, statistics, linguistics, statistics and deep learning. This talk will strip back some of these layers of complexity and discuss the implementation of TTS systems of the past, present and future. Well look at how Emotech uses Rust to implement our next-generation TTS in production and how...
Konstantin Grechishchev - Java and Rust Integration
zhlédnutí 872Před měsícem
Konstantin's presentation is going to be devoted to the Java and Rust integration, particularly to non-trivial aspects of the JNI, objects lifecycle and async integration with coroutines.
Heiko Seeberger - EventSourced - async_fn_in_trait in anger
zhlédnutí 1,5KPřed měsícem
Rust's async story is a great success, but has not yet been told to the end. So far we are not yet able to use async functions in traits, but this will change soon: „async functions in traits“ is a major upcoming feature which has already arrived in nightly Rust. In this talk we show how we used it to create EventSourced, a framework for event sourced entities in Rust. We give an overview of Ev...
Tim Janus - Let's get interdisciplinary: Rust Design Patterns for Chemical Plants
zhlédnutí 698Před měsícem
With chemical plants as application example and engineers as our users in mind, we dig into safe API design with Rust. Therefore we build upon design patterns which are used for decades as catalog of solutions for recurring software architecture challenges. Beside the prominent builder and type-state pattern we will see how the visitor pattern allows us to define algorithms on an heterogeneous ...
Marco Ieni - How Rust makes open-source easier
zhlédnutí 617Před měsícem
You often hear Rust praised for its performance and safety guarantees. In this talk, Marco will show you another aspect of Rust: its powerful tooling ecosystem.`Cargo`, the Rust package manager, and all the tools around it make it easy to create and maintain open-source projects. Marco will cover how Rust tooling: Downloads and builds dependencies. Formats code automatically. Helps ensure code ...
Nicholas Matsakis - Rust 2024 and beyond
zhlédnutí 10KPřed měsícem
This year will be the 3rd Rust edition, Rust 2024, and marks 9 years since Rust 1.0 was released in May of 2015. In that time Rust has become a foundational technology used everywhere from kernels to spacecraft to cloud data centers. As Rust (and its community) grows, how do we stay true to our mission of empowering people to build everyone to build reliable and efficient software? In this talk...
Nikita Lapkov - Type-safe and fault-tolerant mesh services with Rust
zhlédnutí 2,1KPřed měsícem
This is a story of how we made a single-node actor system into a distributed mesh of services using Rust. We will dive deep into technical details of implementing a network protocol, compressing traffic between nodes and making sure everything is observable and debuggable. Strap in!
Tim McNamara - Unwrapping unsafe
zhlédnutí 2,7KPřed měsícem
Tim McNamara - Unwrapping unsafe
Nicholas Yang - Porting Turborepo From Go To Rust
zhlédnutí 2,9KPřed měsícem
Nicholas Yang - Porting Turborepo From Go To Rust
Andre Bogus - Easy Mode Rust
zhlédnutí 7KPřed měsícem
Andre Bogus - Easy Mode Rust
Marco Concetto Rudilosso - Building a profiler for web assembly
zhlédnutí 624Před měsícem
Marco Concetto Rudilosso - Building a profiler for web assembly
David Haig - What’s that behind your ear? An open source hearing aid in Rust.
zhlédnutí 1,2KPřed měsícem
David Haig - What’s that behind your ear? An open source hearing aid in Rust.
Amanieu D'Antras - The path to a stable ABI for Rust
zhlédnutí 3KPřed měsícem
Amanieu D'Antras - The path to a stable ABI for Rust
Luca Palmieri - Pavex: re-imaging API development in Rust
zhlédnutí 8KPřed měsícem
Luca Palmieri - Pavex: re-imaging API development in Rust
Lachezar Lechev - Typed for Safety
zhlédnutí 1,7KPřed měsícem
Lachezar Lechev - Typed for Safety
Hannah Aubrey - A Web of Rust: The Future of the Internet Depends on Trust
zhlédnutí 1,5KPřed měsícem
Hannah Aubrey - A Web of Rust: The Future of the Internet Depends on Trust
Lars Bergstrom - Beyond Safety and Speed: How Rust Fuels Team Productivity
zhlédnutí 8KPřed měsícem
Lars Bergstrom - Beyond Safety and Speed: How Rust Fuels Team Productivity
Frédéric Ameye - Renault want to sell cars with rust!
zhlédnutí 3,1KPřed měsícem
Frédéric Ameye - Renault want to sell cars with rust!
Jon Gjengset - Towards Impeccable Rust
zhlédnutí 23KPřed měsícem
Jon Gjengset - Towards Impeccable Rust
JD Nose - Rust Infrastructure: What it takes to keep Rust running
zhlédnutí 1,8KPřed měsícem
JD Nose - Rust Infrastructure: What it takes to keep Rust running
Rust Nation UK is an event you don't want to miss in 2024!
zhlédnutí 23KPřed 3 měsíci
Rust Nation UK is an event you don't want to miss in 2024!
Rust Nation UK 2024 Workshops
zhlédnutí 243Před 4 měsíci
Rust Nation UK 2024 Workshops

Komentáře

  • @ozanmuyes
    @ozanmuyes Před 2 dny

    Frédéric could easily be the first ever person that doesn't grind my gears as a Frenchman, and yet he is. Great talk 👏🏻👏🏻👏🏻

  • @toadtws
    @toadtws Před 6 dny

    Giving a talk is not easy, and the best delivery comes when you plan ahead and know exactly what you’re going to say and demonstrate. I think this one would have benefited from more prep, and less wandering around in the editor dealing with irrelevant compiler errors.

  • @ozanmuyes
    @ozanmuyes Před 11 dny

    Is it Zellij running in Alacrity?

  • @Myiyk
    @Myiyk Před 12 dny

    I am not sure about use case for Leptos. It looks like React in Rust.

    • @ozanmuyes
      @ozanmuyes Před 8 dny

      What are the use-cases for React?

  • @NeotenicApe
    @NeotenicApe Před 15 dny

    i hate that amazon has infiltrated rust

    • @1____-____1
      @1____-____1 Před 12 dny

      Why? No different than RHEL paying Kernel devs to do stuff.

  • @hk_labs
    @hk_labs Před 24 dny

    Exactly what I was looking for. Thank you!

  • @kibarpro
    @kibarpro Před 24 dny

    Yet another Jon awesome presentation 👏👏

  • @icemojo
    @icemojo Před 26 dny

    The whole thing doesn't feel like an "easy" Rust. It feels more like a collection of weird, contrived dance moves that beginners need to learn in order to avoid those invisible, contrived barriers that the language put up for the name of safety. "If you wanna avoid using lifetimes, use Arc. What is Arc you might ask? Well, let me explain about Rc first before we go into Arc, so that you can "easily" avoid lifetime annotations." Only Rust people think this is ok. Don't get me wrong. I'm totally onboard with the capabilities the language brings. But if those capabilities come with a learning curve, then just let people climb that curve, properly, and maybe even painfully to an extend, in order to bring them the full benefits.

  • @boenrobot
    @boenrobot Před 26 dny

    I do wonder... What is the most used package that includes an unsafe block? I mean, including transient uses. If one knows what that is, and re-implement the unsafe blocks in a safe way (or provide extra features in core to do it), the number of projects with unsafe would go way down.

  • @SquirrltheRiddl
    @SquirrltheRiddl Před 27 dny

    greaaaaat talk! thx

  • @darshankumawat1764
    @darshankumawat1764 Před 28 dny

    wow, this was pretty cool talk. thank you.

  • @bocckoka
    @bocckoka Před 28 dny

    Very hard to listen to due to his pronounciation.

  • @mbczxaydbzrkmszj
    @mbczxaydbzrkmszj Před měsícem

    I learned a lot, thanks Chris!

  • @arubaga
    @arubaga Před měsícem

    At 34:08 it should be // unlock the mutex

  • @flippert0
    @flippert0 Před měsícem

    Title is inadvertently hilarious

  • @androth1502
    @androth1502 Před měsícem

    i thought this was easy mode.

  • @jeffg4686
    @jeffg4686 Před měsícem

    Wait, who's on first? Not a hit on the speaker, oc. It's just another part of rust that's a bit wonky atm.

  • @nyakolynn4901
    @nyakolynn4901 Před měsícem

    YOU MADE MY DAY, I WAS STUCK WITH LEPTOS AND YOU HELPED ME GET IT WORKING,... thanks for the sharing of your knowledge ☕

  • @user-yx8sj5qs5y
    @user-yx8sj5qs5y Před měsícem

    If you are looking for how bevy’s Query system implemented, this may be a wrong place😂 to start

  • @haloboy777
    @haloboy777 Před měsícem

    This talk made me more invested in rust after 3 years of partial use. Would love to use it full time.

  • @kajacx
    @kajacx Před měsícem

    Very cool video! The performance problem with wasm-bridge got fixed in version 0.3 (objects are no longer passed through JS and are directly sent as bytes instead). It is sad that the project got cancelled, using WASM for plugins is a very cool idea, but I think you need a good game (or a good product in general) first to get people interested.

  • @jeffg4686
    @jeffg4686 Před měsícem

    I watch a lot of videos at 2x speed so I can get through enough of them (so much stuff being throw at us). The banjo at 2x was pretty cool. This was a great talk. Also, use easy frameworks - some are more involved than others. Bevy actually is easy Rust imo because of the framework.

  • @user-xi6tu9lb5n
    @user-xi6tu9lb5n Před měsícem

    Nice talk, but sponsored by Huawei is horrible considering their involvement in genocide and ethnic cleansing. Weird seeing such good people with a pseudo hate symbol on stage with them.

  • @mattpedley8138
    @mattpedley8138 Před měsícem

    Some excellent points and whilst i try and advocate for Rust for (safety) critical software I always seem to come up against arguments that the Rust ecosystem/style is not compatible with formal safety requirements & standards?

  • @user-cg4pb1ns4j
    @user-cg4pb1ns4j Před měsícem

    Where can I find this project? Do you have an address for the project?I want to do this.

  • @user-cg4pb1ns4j
    @user-cg4pb1ns4j Před měsícem

    Where can I find this project? Do you have an address for the project?

  • @jeffg4686
    @jeffg4686 Před měsícem

    Chris, we need a fine-tuned LLM for Bevy development. And after fine tuning, further refining using constitutional AI / RLHF. Then a voice integration - so we can just talk our systems. Curious about when to implement a Command versus just another function for the reusable aspects?

  • @SquirrltheRiddl
    @SquirrltheRiddl Před měsícem

    Now i wish there'd be a company in switzerland i could work for with rust ngl

  • @phenanrithe
    @phenanrithe Před měsícem

    Regarding code doc and comments, I'd add one thing: *don't use confusing foo/bar identifiers* . Don't be that lazy guy and take the time to find something *meaningful* the reader can relate to and remember. That's how our brain works, so use it. For the tests, code coverage is also very helpful, unless you have some ATPG tool available.

  • @JohnDarrington88
    @JohnDarrington88 Před měsícem

    Oh look, it’s the BEAM! (not being mean, I love to see a marriage between my two favorite languages!)

  • @Taladar2003
    @Taladar2003 Před měsícem

    It seems like you are not using OpenTelemetry trace ids? Is there a particular reason for that? It could be useful if this is only used as part of a larger system.

  • @Taladar2003
    @Taladar2003 Před měsícem

    Amazing list of things that are important to reliable software. About the only thing I can think of that hasn't been mentioned that would fit in with the rest of the topics is observability in your production environments, make sure you track everything there that is important to later figure out what did go wrong since you can't really rely on the ability to wait for several occurrences of an issue for a pattern to form or to reproduce it if you didn't track everything important the first time around. Basically ask yourself at every error path in your code "what is the information I wish I had if I had to figure out that this error occurred and why?" and often you will realize that there are values that are available in local variables or similar easy to reach locations for your code that you did not log or otherwise preserve or that there are connections between components that call each other that could be more easily correlated in your logs or traces if they shared some trace or request id or similar identifier you can pass on trivially if you think about it up front.

  • @RulerOfCakes
    @RulerOfCakes Před měsícem

    Impeccable Rust, Impeccable Speech!

  • @oleksrow
    @oleksrow Před měsícem

    This is so great ❤

  • @ozkriffGames
    @ozkriffGames Před měsícem

    Great retrospective, thanks! Also, good luck with your future projects! :)

  • @cplusplussizeddick1430
    @cplusplussizeddick1430 Před měsícem

    I didn't click on this video to listen to shitty guitar and singing

  • @nordgaren2358
    @nordgaren2358 Před měsícem

    Why doesn't he use the add method on the pointer, which will add the size of the type to the address for him?

  • @polares8187
    @polares8187 Před měsícem

    Great as always!

  • @nirmalyasengupta6883
    @nirmalyasengupta6883 Před měsícem

    Great talk! It brought me back to my Scala/Akka days! Developing non-trivial applications (and I have done a few) in Akka was not easy, but the end-result was always predictable. Modeling the behaviour was relatively easy. The 'message window' feature seems to be equivalent to the way *back-pressure* is implemented in Akka! Will take a look at the docs of _elfo_ !

  • @nordgaren2358
    @nordgaren2358 Před měsícem

    Why not just use the layout from the C shared library ABI? As it is right now, you can export your code to the C ABI like a C shared library, and make a bindings crate to add in metadata like lifetimes, type definitions, even member functions if your member function is just defined as a C function in your crate that will be compiled down to a dll has inside of it. Like: ```rust // This should go in a "common" crate that both the shared library crate can access the type and the bindings crate can re-export it without creating circular dipendenciy. // This will import from the dll "my_shared_library.dll", and only with the "imports" feature. We only want to import this function in the bindings crate, to avoid double definition. // Importing is a tad bit different on Linux, but shouldn't be too hard to look up. Sorry! #[link(name = "my_shared_library", kind="rawdylib")] #[cfg(feature = "imports"] extern "C" { pub fn MyTrait_some_function(this: *const MyTrait) -> bool; } #[repr(C)] pub struct MyType { some_size: usize, some_bool: bool, } impl MyTrait { #[cfg(feature = "imports"] pub fn some_function(&self) -> bool { unsafe { MyTrait_some_function(addr_of!(*self)) } } } // this in your shared library crate that compiles to dll pub extern "C" fn MyType_some_function(this: *const MyType, value: usize) -> bool { // do some work } ``` and then in your bindings crate, you make a safe wrapper around that function, as I loosely demonstrate here. You just have to make sure MyType is #[repr(C)] as well as you use the right calling convention

    • @nordgaren2358
      @nordgaren2358 Před měsícem

      You don't need a new ABI or layout for anything if you are just adding metadata. You can add that in the executable files resource section. You don't need to describe these things at the binary level. The C ABI should work fine. Unless there's something incredibly new that needs to be built from the ground up, there's no reason not to go with the C ABI with a few minor tweaks, and only IF we NEED those tweaks.

  • @teenageoperator7246
    @teenageoperator7246 Před měsícem

    Jon… I love your talks and streams but you gotta consider your employers better…

  • @tiagocerqueira9459
    @tiagocerqueira9459 Před měsícem

    Today, I found out she's the lady behind the answers of the problems I searched on the forum. Thank you for your service

  • @robert36902
    @robert36902 Před měsícem

    Loved this talk - exactly the kind of balanced discussion we need to have for all long term non-trivial software projects with external dependencies regardless of language, to be able to move forward responsibly and not getting stuck in old versions or upgrade recklessly.

  • @daniellambert6207
    @daniellambert6207 Před měsícem

    7:45 It seems like `items.clone().iter()` will still have an issue with `modify(item)` being able to return an owned `T`. Perhaps `for item in items.clone()` to use IntoIterator directly? Aah, I'm thinking too complicated... I suppose `modify` can clone the input

  • @andrewdunbar828
    @andrewdunbar828 Před měsícem

    a parenthasee a parenthado

  • @TechTalksWeekly
    @TechTalksWeekly Před měsícem

    I think there's a typo in the speaker's name. It should be Heiko Seeberger, and not Seeburger.

  • @daniellundqvist2926
    @daniellundqvist2926 Před měsícem

    The lack of exceptions is a sign of quality. Exceptions should've never been a thing.

    • @ArmandoDoval
      @ArmandoDoval Před měsícem

      Exceptions do their job well, they just don't work without garbage collection.

    • @julians.2597
      @julians.2597 Před měsícem

      @@ArmandoDoval they do not, why we still allow hidden control flow a la GOTO in our codebases several decades after decrying the very same for its faults is beyond me

    • @gfasterOS
      @gfasterOS Před měsícem

      I think Rust's support for exceptions is well handled via panic_any. It's for truly performance critical code where any failure means aborting the whole task and only hot-path performance matters. You really barely ever want to use it, but it's available for the extremes.

    • @jangrant5171
      @jangrant5171 Před měsícem

      Exceptions work in C++ without GC. They also don't have to be "hidden"; the point of checked exceptions is that they represent exceptional cases that can arise even when using an API within its contract People make a fuss about checked exceptions (the initial Java class library didn't use them particularly well) but they're not dissimilar to specifying the Err side of a Result in terms of verbiage.

    • @fcv0ltec
      @fcv0ltec Před 27 dny

      Nothing wrong with exceptions. As any tool, can be used in right or wrong way. If you volunteer to shot your own leg and use them as goto (as mentioned in comments) nothing can help you, really. You will find your way with any tool you have. I’m new to rust, but error handling looks like a pain. Though, I have an impression I maybe missing something. It looks unnecessary complicated. In the most of the cases I would like to have just something generic were I just can return an error, all receiver needs to know is if that was failure or success. I do not want new types. I also want to be able to handle all library errors in the same way - again in the most of the cases I just want to know if things failed or not, do not need specifics. All in all, analogue of “throws Exception”, in Java world.

  • @ThrashAbaddon
    @ThrashAbaddon Před měsícem

    Watching this I came to conclusion that I prefer "non live coding" style of presentations. I find it much easier to follow when you show the code on the slide and invest more time into describing what it is and what it does, then watching all this typing and all possible errors one can stumble upon when writing code. As far for the Leptos project itself, fantastic work from everyone involved. 🙂

    • @avalagum7957
      @avalagum7957 Před měsícem

      If we make a lot of typos when writing code, I guess that the IDE is not good enough.

    • @zekiz774
      @zekiz774 Před měsícem

      @@avalagum7957 This has absolutely nothing to do with the editor

    • @allurefxllc1150
      @allurefxllc1150 Před 4 hodinami

      It isn’t usually as bad as this. He was poorly prepared and focused on the wrong things. If anything IMO he made Leptos look more messy than it actually is. Hope he learns from this. Greg on the other hand is a good communicator and advocate.

  • @ahmedkarim4669
    @ahmedkarim4669 Před měsícem

    Weren't they already using Ada/Spark to prevent such problems?

  • @KushLemon
    @KushLemon Před měsícem

    The Scammer. 😂😂😂