Rust & Wasm
HTML-код
- Опубликовано: 20 сен 2022
- Today I'm going to talk about building apps you can deploy anywhere with no installation by using Rust and WebAssembly.
Sponsor: Quadratic - The Data Science Spreadsheet for Engineers
Check out the project on Github: github.com/quadratichq/quadra...
View open jobs here: careers.quadratic.to
If you would like to support what I do, I have set up a patreon here: / noboilerplate Thank you!
All my videos are built in compile-checked markdown, transcript sourcecode available here github.com/0atman/noboilerplate this is also where you'll find links to everything mentioned.
Corrections are in the pinned ERRATA comment.
Start your Rust journey here: doc.rust-lang.org/stable/book/
CREDITS & PROMO
My name is Tris Oaten and I produce fast, technical videos.
Follow me here / 0atman
Website for the show: noboilerplate.org
Come chat to me on my discord server: / discord
If you like sci-fi, I also produce a hopepunk podcast narrated by a little AI, videos written in Rust! www.lostterminal.com
If urban fantasy is more your thing, I also produce a podcast of wonderful modern folktales www.modemprometheus.com
Special thanks to my patreon sponsors:
- Affax
And to all my patrons!
ERRATA
I was not clear that wasm is only slower than JS in DOM manipulation. If you write pure wasm and webgl, you can smoke JS.
small syntax error: at 5:55 some of the component trait's methods don't have semicolons after
@@w1keee Those may have default implementations that are not included in the video.
@@w1keee Thank you! That's part of the code that is omitted on the slide, it's not valid rust (super compressed code to try to fit it on one slide).
@@w1keee more specifically, they are trait methods with default implementations and are thus followed by code blocks rather than semicolons
@@raffimolero64 ok, thanks
You certainly have a way of making Rust sound like it came to us as a gift from a Kardashev II civilization.
I'm not saying Rust will make us immune to extinction....!
@@NoBoilerplate yet.
Lol nice comment
@@NoBoilerplate "it's a cookbook!"
W kardashev mention lessgoh
Me: Manipulates DOM directly with JS.
No_Boilerplate: No one manipulates DOM directly.
Me: 😐.
Oh you should try jQuery /s :-D
I mean... rust _can_ still manipulate the DOM directly sooo
Imagine wasting your time writing clean and performant code to interact with the DOM instead of using a heavy and cumbersome -framework- library like React.
I’ve done this. But I was in an environment where I literally was barred from using react or angular.
@@NoBoilerplate I'm currently trying to get permission from my Tech Lead to rip jQuery out of our project... xD
In my current personal project, I'm writing a backend and several clients all in Rust, including a frontend using Yew. There is one boon that WASM gives you that you didn't touch on. You can directly share libraries between your backend and frontend. No reimplementation. No bugs from translating between languages. You can ensure that the behavior of your data structures is identical between every piece of the project. Fix a bug once, and you're done!!
The message passing pattern showcased is also a fantastic way to handle client-server communication and syncing of shared state.
Brilliant! I'll make sure to mention this in the follow-up video, in a month!
Yeah this is really the biggest benefit of using one language for both backend and frontend 😄
I completely agree! I use the game framework Macroquad for little games that I make, and it has support for WASM! No lag, no hassle, just "cargo build --release --target=wasm32-unknown-unknown"!
I'm learning Rust by building a 2D roguelike game based off a book by Herbert Wolverson called Hands-on Rust. 👍
its you again
@@tentaklaus9382 Awesome!
@@thecoweggs hello
macroquad is so amazing! i recently made a minesweeper game and putting it on my website was literally so easy
The rust ecosystem never ceases to amaze. I can see that in just years from now, rust will be able to do quite literally everything. A _new_ javascript if you will
I will.
It's faster than React today - it's ready!
@@NoBoilerplate it's also faster as compiled binaries. I ported a program I designed as a lightweight background program in c# to rust and the memory usage was cut in 7 and cpu usage went from 0.1 % to unmeasurable. Thanks to rusts high level feel it wasn't as painful as c/c++ even though I needed to use the raw windows window functions.
@mathgeniuszach with the difference of Rust not being as horrible as Javascript :D
@@NoBoilerplate You said js is faster than wasm. Is it really?
There's something about your videos that makes me so interested in programming in rust. Keep up the good work!
-It's the british accent B)-
hehe!
Thank you! Honestly I feel the same, so it must be the Rust XD
PSA: Remember that rendering to a canvas breaks the accessibility of the page. Screen readers won't read elements aloud, being able to copy-paste text gets lost, no auto reflow is possible with CSS, etc. 🙏👍
Agreed, I really love web accessibility (It's a huge thing where I work), but it's good to have the option to write webgl applications and games!
It would be nice if you could just tell the browser the access ability attributes of a screen region.
Lack of accessibility is currently a drawback, although my feeling is long-term screen-readers are going to be replaced by AI chatbots anyways. Copy-paste is an interesting problem, although there must be a way to hold text in a state that the cursor could then grab, depending on the framework used.
That is true, but it's also true for JS/Flash (afaik). I'm learning WASM to make web games, because I feel that they will have more reach.
> my feeling is long-term screen-readers are going to be replaced by AI chatbots anyway
I'm guessing you don't use a screen reader or have any close friends who need them
Tris makes me feel like I know everything CS related just by knowing rust 😂
Rust is my favorite language 🦀
HONESTLY this is how I feel. I'm learning so much about how stuff ACTUALLY works, by learning Rust!
Tried to explain it in this one ruclips.net/video/0rJ94rbdteE/видео.html
@@NoBoilerplate I totally agree! 🦀
Man, your content is so minimal, pure & easy to understand.
I am addicted to your channel even though I don't write Rust.
You don't yet write Rust ;-)
The Book is where I started, keep watching!
doc.rust-lang.org/stable/book/
@@NoBoilerplate I've had my eyes on Rust for a couple of years but haven't found any reason to try it yet, still waiting for that day to happen. (I am a Rails dev so I mostly develop within the web)
BUT there is an ongoing rewrite of Ruby called Artichoke, in … of course Rust.
@@mikopiko Ha! The whole world is oxidising! rocket.rs is the closest to Rails that I've seen, though it's more like Sinatra with strong community plugin support. Rails is wild isn't it! We use it at work here and there!
I’m finally getting to the point I grok the lifetime errors the compiler is complaining about at a glance, and can instantly think where I messed up and where I need to go fix. It used to be that algebraic data types were my gold standard to consider a modern language usable or not, but now I can’t imagine programming without a borrow checker.
Literally, Ive been working on this personal project (a distributed event framework) for months with type level programming, and at roughly 3500 lines of code before a minimum executable demo, it executed not just successfully but correctly too. Literally first try. I was in shock. I was fully expecting to debug for hours or days. I’m in love with this language.
I love that feeling!
the procedural macros are the most genius and mind blowing feature to ever exist in a programming language, rust basically solved the source generators problem in the most elegant way and went a step beyond
This is literally why I'm here. They've existed in lisp for longer than most of us have been alive, but it's AWESOME that rust took the best parts of lisp!
I bloody love your sponsors. Thats how you everyone should do them. They always have something to do with the video.
This is what's it's all about!
I'm learning React right now so I can get a job. If only I could use rust for this! Will definitely look into it more if I ever make my own personal projects.
hopefully in the coming years Rust frontend will be much more mainstream 🤞
React will be a great framework to get work! It's never a bad idea to learn more languages and techniques :-D
unfortunate that most companies hire React devs when Vue 3 is so much more dev friendly and maintainable and readable.
Brilliant philosophy. Im learning react + nextjs for my career, with remix as my personal choice. That way personal projects will be efficient but I'm still hirable
@@zuma206 More knowledge is always good!
Fantastic video, as always! I'd also like to congratulate you on your choice of sponsors. This is the first time I've seen sponsorships in videos that really interest me and that I'm going to look into, keep it up!
Your videos inspired me to learn Rust and I'm so glad I did! I've already converted several of my personal projects.
Whenever someone asks me for info about Rust I always point them to your videos.
Fantastic! I'm on a mission to show the world how great this language is!
Thank you for this video! I started working with Rust Wasm today and got a basic webserver and website running that changes what's displayed based on the web parameters. Very happy with how it turned out - especially that no JS was required.
Fantastic!
I’m obsessed with your channel. I watch all your videos on the day of release. Please keep it up!
Wow, thank you!
Really nice video, clear and fast-moving
Thank you very much, I have 9 other Rust videos in the same fast format, I'd love to know what you think!
Wow this is amazing 😍
Thank you for sharing!!
Rust is so blazingly fast, I downloaded and installed it 5 times thinking something was wrong, literally micro seconds installation of the compiler. It was only after running rustc that I found out that the compiler installed already!
You present Rust in such a way that I feel like I want to learn it so much... It's just that I JUST got my first programming job a couple of weeks ago and I also have a couple of Java and JS projects still unfinished, and a freelance gig with Python. Yet the less time I have, the more drawn to Rust i become lol
Congratulations! Welcome to a really great industry :-D
Don't worry about it, you'll learn 10 new languages (if you've got the right attitude) during your career. 5 of which haven't been invented yet!
Rust's a great one to learn for now.
@@NoBoilerplate Thank you for the reply.
I was planning to build a multiplayer Android/ios, very simple card game in Java. I am now thinking of doing it in Rust. Would it be too hard, in your opinion? Or should I start somewhere else?
@@varsketisLT I think you'll have a much more INTERESTING life if you write it in Rust! The game engine we like around these parts is bevyengine.org
Come chat to us in #newbie-advice on my discord server, links on noboilerplate.org!
@@NoBoilerplate Thank you so much, will do!
Every time I watch your videos I fall in love with Rust all over again.
Honestly same
Quadratic looks awesome, was just today hearing from a friend that has to fight Excel and VB at work, where he is locked into Microsoft products. This looks like such a cool, modern alternative! I love the idea of bringing python and it's whole ecosystem into the mix.
Doesn't it look flash!
Yew is a fantastic library. I've used if for multiple projects and thoroughly enjoy it.
This gets me excited to code some more Rust 😍! Great video, subbed
I'm excited for you! It's very hard, you'll have to watch more of my videos to get excited, but start with the book doc.rust-lang.org/stable/book/
i'm excited to try yew out - i've been doing React for work for years, and i've done a bit of by-hand rust-wasm here and there, plus a fair bit of rust+react. this feels like the next logical step in basically every way
Terrific! Yes I'm excited by Yew now!
Thank you for the content, and I can tell it's going to be great even before I watch it.
You're too kind!
The biggest downside is still that Wasm can't interact with the DOM of a website directly and relies on JavaScript. Even if you write everything in Rust to interact with the DOM, Wasm translates it into JS, which then interacts with the DOM. This eventually results in a bottleneck. The guys over at Wasm are saying they're working on a way around this. I'm sure once they have a solution, browsers will need to add support for that. Once this is solved, that's when things will get interesting. Imagine websites running on Rust/Wasm with direct access to the DOM api without the need for JavaScript.
Are you certain of this fact? Yew is faster than react in dom manipulation benchmarks.
@@NoBoilerplate Yes. React is not a particularly fast framework. Svelte, Vue, and Preact are all faster than Yew according to the js framework benchmark. Using WASM for DOM manipulation can't be as fast as vanilla js, as of rn.
@@zomakaja Right, that makes sense. Seems like wasm dom manipulation is fast enough though, if it's faster than react - how many websites are powered by react!
Currently learning rust as a hobby. This gets me more excited for what I can do with it😄
IKR!
YES! Finally the video I was waiting for from you :)
Part 2 in a month!
Very cool video! Thank you for sharing
Thanks for watching!
The thing with Yew that really bothers me, is that the styling is still painful. Well, was painful, idk if today we have solid solutions. But once we’re getting something solid like CSS Modules or Styled components, I’m JUMPING in it!
Take your pick and jump in! crates.io/crates/yew-style-in-rs
Great video as always :)
I love yew. As always, don't underestimate the learning curve (as with everything rust) - you need to spend some time with the current webassembly stack in rust to really get going. Once you have that, you pick up speed and that's the point where it gets really great.
For example we had to process a big excel file and send some parts to the server.. well, guess what: Just use an excel reader crate - process everything client side and send a payload of a few kb instead of 20mb. You can even have shared types in your front and backend and send the payloads back and fourth in the perfect format - apply some validators there and you have input validation everywhere!
Just some input to underline the things you can have for free :)
That's fantastic!
amazing video as always 🧡
Thank you!
I think Swift and Nim would be really nice languages for WASM too, for people who don’t want to/have issues with learning the borrow checker. Both of them are getting closer and closer to making their GC/RC less often used. Swift is a lovely language, it kind of sucks it’s so heavily intertwined with the apple ecosystem.
I also wish that, but we must play the hand we are dealt!
Rust isn't my favourite language because it's perfect, it's my favourite language because it's practical and we can build a team and get good work done NOW!
Doesn’t Swift now have a borrow checker?
@@morkallearns781 Not yet I don’t think? inout arguments block you from passing both an immutable and mutable “reference” to a value, but no ownership (yet)
incredible content, thank you
Glad you enjoyed it
Now, just imagine: Yew + Tauri. The perfect duo for cross platform desktop apps with the flexibility of WEB technologies and power/safety of Rust.
Damn I want that now... Somebody knows Web-Rust Tauri bindgen tools? That's literally the last piece in the puzzle for seamless Rust-only desktop development.
I don't know, whether this fits what you are looking for, but the Tauri documentation does state, that one can build a Yew project with Tauri.
the dream!
Tauri has the `create-tauri-app` cli tool, which includes a template for Yew 🙂
@@TheNewJavaman omg yesssss
Looks interesting. How would the styling side of things work? I guess it would be an external stylesheet with classNames though.
Also if it had a way to hot reload the way most front end frameworks/libraries do it could be a winner!
Yew hot reloads without a page load. I nearly fell of my chair when it did it first!
The best part about this series is that once each video is finished, a new JS framework is released queuing up content for the next video
Ugh, you're not even exaggerating that much XD
This is so funny. I was exactly thinking about this
I had so much hope for this being a video about perseus. Even though perseus is still in very early development, it absolutely crushes nextjs with SSR *and* SSG support. It also is a backend and frontend in one framework.
Their own website looks super good and only after like 2 seconds you are like "wow did it just instantly load"?
I highly recommend checking it out, even if it is just for fun and giggles.
Wow, I just checked it out! That is SUPER impressive. I'll watch Perseus with great interest, thank you!
@@NoBoilerplate You are welcome:) Happy to share.
Ever considered making a podcast or short video every month / 2 weeks, about new things in the rust ecosystem. Bit like the code report from Fireship but for Rust.
There is a lot of new stuff happening in the Rust ecosystem and I think a lot of Rusteans would love to to get to know the new stuff, but sometimes are overwhelmed with all new things. Especially deciding if it is quality or garbage with a cool name.
@@job4753 Great idea! But I think I'll leave that to the professionals. My videos are featured in the various weekly roundup posts, newsletters and threads round about.
I prefer to produce high impact, high value videos. I saw there was a lack of highly-produced introductory content in the Rust community (Though Fireship is an exception), and I want to make sure as many people get excited about this world-changing language as possible.
Once they're listening/reading the weekly roundups, the work is done, and the language sells itself 🙂
@@NoBoilerplate fully understand that:))
You always nail the sponsors.
Thank you!
@1:51 - I'd say that graph/chart alone sells Rust - want to do WA, likely gonna want rust.
Right! check the sourcecode for the links for more info
smh, imagine not deciding on using the boilerplate driven language designed for writing verbose, object oriented, instant legacy code
The way you handle state and mutations on Yew feels almost identical to the Elm Architecture, and I'm all in for it
Huge fan of elm - it's all functional programming sensible defaults!
I think Yew was heavily influenced by Elm, which is why they chose Yew for a name.
@@Tsudico omg
The biggest issue with react is implementation details bleeding into the abstraction. having to constantly duplicate objects with {...something, prop:"new value"} to set a new state because things are immutable being a key example. When you have an account balance and do +10 no one envisions that a brand new account is created with a value 10 more. The yew way of updates reminds me of a required useReducer hook as the only way to update.
These videos and the level of content they maintain (more importantly) absolutely wonderful 🎉 Every time I think “how’s he going to make this interesting?” And yet you absolutely floor me. Please, just teach a class or something already. 🤦♂️ 💕
Thank you so much - maybe I will!
At 0:25 you mentioned that AWS supports Rust. That is sort of true, but not quite. Everywhere that the AWS Rust SDK is mentioned, they state that the SDK is a preview and that it should not be used in production. Rusoto is the alternative
Sure, and gmail was beta for two decades ;-)
Rusoto is in maintenance mode, since the aws sdk dropped, it's great!
It seems like the only thing holding back Rust right now is time. Time for people to realize its potential, time for people to get used to the slightly different paradigms that it uses, and time for the ecosystem to develop and the language to stabilize a little.
Absolutely. I am trying to push the needle slightly in the right direction with my Rust series!
You do an excellent job in selling this technology, and I'm sold.
Thank you, but it's the tech that sells itself, honestly! The reason I'm over here making these videos is that I NEED more people to know that a pleasant programming life is possible :-)
Have you tried much Rust yet? Make sure you've watched this intro video of mine ruclips.net/video/CJtvnepMVAU/видео.html
@@NoBoilerplate Thank you for sharing. Rust is on my scope for a while now. As of now I have to maintain a lot of hybrid web/apps (native), so things like ReactNative with Expo and Flutter. I'm already keen to try Dioxus, despite Rust still treating mobile as 2nd Tier target. I soon have to make a good decision and I couldn't thank you more for bringing this on my radar, once again.
@@_modiX I hear good things about Dioxus - do try out yew.rs and tauri.app too!
Fantastic! 🔥
Thank you!
THANK YOU
YOU'RE WELCOME!
Rust aside, you're videos are therapeutic
Thank you! You might find my gentle scifi podcast even MORE so! I'd love to know what you think ruclips.net/video/p3bDE9kszMc/видео.html
Looks great, thanks for sharing! A little disagreement though, macros offer poor visibility in general regarding errors at compilation, and average support in IDEs because it's complex for them to interpret (for ex. with refactorization and type inference).
Awh yeah, another fast, technical video!
That's right!
I've been learning Rust for a couple of weeks now and although it hasn't been without it's headaches, those headaches have always been because of additional complexity that other languages keep hidden.
A great example I ran into a couple of hours ago was when I tried to convert a char into uppercase. I was expecting to get a character out the other end, but I ended up with a completely different type which I couldn't convert.
It turns out that converting certain characters to uppercase can result in more than one character being produced - an edge case that I never would have considered had I been writing in any other language.
Over the years, there have been many crashes on operating systems like Android and iOS due to them missing edge cases of Unicode such as the one above. I can't help but wonder how many of them could have been avoided if the operating systems were programmed using Rust's spectacular error checking.
Hah, thats a cool. My main issue in getting into Rust tends to be to find good up-to-date tutorials. I only find very simple tutorials. And then keep getting stuck trying to write my own stuff.
But trying to find an answer to my issues tends to find tons of outdated answers because Rust changed so much over time
@@MaakaSakuranbo yeah I'm really lucky in that I'm taking a university course on it so there's a whole team of dedicated teachers making the process as smooth running as possible.
@@miguelguthridge If you were asking about the uppercase char thing on Stackoverflow, I just saw your question. And if that wasn't you, a practically identical question is there.... fun and eye-opening discussion in comments and answers.
@@peter9477 it wasn't me, but I'm pretty sure I encountered a similar question while figuring out what was wrong.
You know JS congratulation you are a backend developer. :). Just Keding great video bro. I am seriously considering Rust now.
Ha! Yes good point, node is really great!
Have you seen my other videos? Here's the playlist, get excited! ruclips.net/video/CJtvnepMVAU/видео.html
Not related to wasm in general but tauri + rust is a great tool to build things specifically if you want to create something which can work with system level features like running a custom-built ml model and pipeline but have a fast to prototype and great UI using web frameworks (although its slow but it gets the job done)
Nice job promo from quadratic.
Thank you, my whole goal is to increase Rust adoption - once you know to pay attention to it, the language is self-evidently great!
liked. time to watch the video.
Much appreciated
When I watch your videos I feel like I'm being roped into a sect and it looks so good!
The cargo cult! 😄
@@TheAndrejP a very funny coincidence en.wikipedia.org/wiki/Cargo_cult
I do know what you meant though hahaha!
new channel name right there tbh
I just learned vue, but this seems pretty cool!
Knowledge is power!
wake up babe new no boilerplate video just dropped
Great video.
Thanks!
please make more examples with multi-threading/async on WASM
I'm very new to Rust, but this pretty sweet
It is! Check out my other videos in this rust series for more incredible features you can't get anywhere else!
Now we need a video on Tauri 🙂
Yeah! With the yew defaults! A future video :-)
1:57 can’t unhear “shit-compiler performance cliffs”
Yes, sorry!
I'd love it if Yew could render CSS in the same way it renders HTML!
BAM thanks for making me look this up, this is great!
crates.io/crates/yew-style-in-rs
@@NoBoilerplate Oh sweet Lord, it's scoped as well. I may have to ditch Vue.
@@sosignon let me know how it goes! (are you on the discord?)
@@NoBoilerplate Ha, I don't know when I'll next get a chance, but yes of course. Not in the Discord yet, will hop on.
Dioxus is another option which is less verbose than yew and is faster than Svelte once loaded, which is a higher bar to beat than being faster than react.
Yeah, I've become much more interested in Dioxus since making this video, very impressive!
My current Rust project is the peak of Rust full-stack development:
Compiler for the esolang? Rust with Pest for lexing/parsing and Inkwell for compilation to LLVM IR.
Website frontend for the esolang? Rust with Yew.
Website backend with public compilation API (also used by the frontend)? Rust with Actix and possibly Diesel.
Hotel? Trivago.
I absolutely love this language and its ecosystem
Fantastic!
Special request: Can you do a video on rust use cases (what you can do with rust) and also what you should actually use it for and not use it for. Cause I hear people say "Rust shouldn't be used for web dev (backend ofc) "
Love the channel btw thank you
Thank you so much! I think you can and should use Rust for anything! My video on this is here ruclips.net/video/4dvf6kM70qM/видео.html
👍!
not to mention the fact that rust macros are a whole different beast to tame
No Boilerplate: The best Rust shill on youtube.
Thank you!
I'd _really_ love to write an app using egui and have the same codebase for both web and native, but at least from my testing the performance isn't quite there yet. Also the accessibility issues. Definitely going to use yew in the future, though.
Yes, I think that if I were in your position, I'd use Tauri and Yew. Much more mature, html is *the* interface!
your voice is soothing
Thank you so much! I've been doing a gentle scifi podcast for the last 2 years, I'd love to know what you think of it ruclips.net/video/p3bDE9kszMc/видео.html
As a web developer with 8 years of experience, using react since the beginning, recently vue, I really really want this. But at the same time, I'm fairly confident that the industry won't be able to make the switch, not in the next 10 years at least.
The revolution could start with you!
“… and I’ve used eMacs”
Alright alright already I’ll subscribe
Gotcha
I’m trying to get into using rust for web developement, my expirience with web developement as a whole is limited to AWS, goHugo, and an understanding of html and css. Would you say that learning yew as a front end and Axum would be a smart step foreward?
Yew - absolutely!
Backend, I'd try rocket.rs first. I love Poem, too.
❤
This and the Good Rust Web Stack video have inspired me to go full-stack Rust! I'm sure you have a lot on your plate, but I was curious if a Rust WebGL demo video is still in the works?
I didn't go too crazy with it, but I did put out part 2! ruclips.net/video/y10jJX35shE/видео.html
And if you'd like my recommendations on how to learn rust further, here's my playlist:
ruclips.net/video/2hXNd6x9sZs/видео.html
You mentioned that we don't usually manipulate the DOM directly using Rust or JS? Why not? I recently made a web application to display content from a site, and I used DOM manipulation to add labels with extra data. I did what you showed at 2:43 where I created elements to append to another element, which I then appended to the page.
I don't think I said that - I mean that most of your application logic is plumbing, not UI code.
JS can access the DOM directly, through the window.document api. WASM applications have to call js to then call window.document, so there's a layer of indirection.
When targeting WASM, C# is compiled ahead of time. There is no JIT, no GC.
Thank you for the information.
Have you seen what else Rust can do? I tried to cover many topics here: ruclips.net/video/0rJ94rbdteE/видео.html
At the end where you are talking about where rust runs probably would be wise to mention for valid llvm targets. Until the gcc frontend is done there are still a lot of places rust won't run like a lot of embedded environments
Oh really, I wasn't aware. There's a bunch of embedded targets it DOES run on though, right? What would gcc get us?
@@NoBoilerplate There are some that LLVM runs on yeah, like I believe Pi's. Part of the whole "get Rust into the Rust Kernel" debate was because of the limits in what platforms LLVM allowed. But thanks to them agreeing to allow it for drivers (which clearly not every environment needs drivers) the lack of what targets LLVM allows doesn't matter so much.
Now mind you some specialized hardware doesn't even get compiled to from GCC, in cases where the hardware vendor actually supplies their own compiler tool chain. That's an area where we may need to see the rust specification that is in the works come through before Rust can make inroads there.
Doom on the phone must be very difficult to play :) interesting content, thank you
Yes, bit awkward on-screen controller - but possible!
One thing I haven't gotten my head around yet with Rayon is blocking the underlying Rayon worker with a channel. With Tokio, async channels allow for the future to pause while the worker executes other tasks while Rayon uses std::sync::mpsc::channel which will block the entire thread if you .recv() on it.
Can you use Tokio with wasm?
But what about the WASM binary size? I remember that there's an article on some wiki about how to reduce it (compiler optimizations etc), but it still adds quite a bit, for example an optimized WASM file for a web project I'm doing (without any clearly "special" dependencies) is ~2MB..
Interesting problem. Are you compiling in release mode?
0:30 ..... AND on microcontrollers! :)
Yeah! I should call out microcontrollers specifically, not just say "bare metal" all the time. Brilliant!
Hi, thanks for another video! Where did you get the statistic that Rust the cheapest language for lambda functions? Seems like a powerful argument to use in a classic "ehh guys, maybe we should start using Rust?" company discussion :)
Lambda is charged on run time and memory usage. Rust is as fast as C, and with a tiny runtime overhead. THEREFORE: Cheap on lambda!
My next video, writing now, actually goes in to detail.
I dread talking about it, because I'll have to talk about benchmarks - always an area of contention!
@@NoBoilerplate Awesome, looking forward to it! Yeah, I can imagine, folks in general can be quite 'particular' in language discussions :)
At 7:39, are you inserting rust code right into the button's onclick attribute? I thought you could only put JS in there.
amazing, right? Yew is generating some js plumbing code for you! Try the yew.rs tutorial!
The Yew framework seems cool because of the performance it gives you. But I want some that allows me to work like with React. I mean I want JSX and don't manipulate directly the DOM nodes
Please rewatch the second half of the video, this is what Yew does.
How about a video on using Yew for an app with both web and native targets?
That's exciting, good idea!
Ferb: I know what we're doing today!
Nice video, but the blue progress bar is kind of superfluous on RUclips, where we already have a red progress bar.
I put it there for people in fullscreen - on desktop or mobile, to see where along in the video it is - as the red progress bar disappears!
The fact is that many people aren't switching to Rust for frontend for speed (contrary to what people think). Instead, they want a strong codebase where the compiler (and language design) makes runtime errors almost impossible. Anyone who worked with a large React-based project knows how messy it gets over a short time.
Couldn't agree more!
Have you done any work on Rust for gamedev? I'm looking to learn Rust from a dev angle
The game developers on my discord talk about bevyengine.org all the time - try it out!
1:10 True, but why should javascript even be ported to wasm when it runs directly on browsers anyway?
Quick question, is it possible to create Desktop Environment, like Gnome, KDE for linux, using WASM?
in-browser? Very possibly! But you'd have a lot of work to do there!
I'm trying to use rust to write files. I have various problems with creating text and files. I would love a video explaining howto work with text (or strings) I find it quite cumbersome in rust. Do you have a video og strings and io?
Come and chat to us on the Discord - ask your question in #newbie-advice!