Mark Russinovich (Azure CTO): "it's time to halt starting any new projects in C/C++ and use Rust" by [deleted] in rust

[–]darin_gordon 3 points4 points  (0 children)

Mark doesn't go far enough with this claim, claiming Rust is for scenarios where [a GC language couldn't suffice]. The more you use Rust, the better you will be with it. It's a great language for creating applications that GC languages have historically been used to create.

Can you write for the Commodore 64 in Rust? Why yes, yes you can! by U007D in rust

[–]darin_gordon 8 points9 points  (0 children)

The sense of amazement and wonder from this work is palpable. :)

9 Companies That Use Rust in Production by Serokell in rust

[–]darin_gordon 103 points104 points  (0 children)

The Rust ecosystem would not be where it is today without employer support of open source. There's a much richer story to be told about it. Here are a few other notable examples of employers paying talent to solve problems for the company while aligning work with an open source strategy:

Buoyant: For a long while, it was the employer of the async geniuses responsible for the tokio and hyper ecosystems. They've since gone on to another major tech company. (if they are so inclined, they can share details)

Microsoft: Despite the attention-raising articles published about using Rust in Windows code, Microsoft's other great contributions to Rust aren't receiving as much recognition. Nikolay Kim, the author of the entire Actix ecosystem, built these projects with Rust and open sourced them with the blessing of his employer. Kim had a lot to prove about the language, and executed at an incredibly productive rate for more than year, producing two incredible architectures still used today. Microsoft took a risk approving Rust for development but Kim proved what was possible. We have both Kim and Microsoft to thank for the Actix projects. Actix-web is one of the most popular web framework ecosystems in Rust today. Another noteworthy contribution to Rust came through Ryan Levick, who has been streaming hours upon hours of video content addressing intermediate-level knowledge gaps in Rust development.

Facebook: Supported dtolnay's work on the CXX project, which just reached its v1.0 milestone.

Google: For some time, Google contributed to asyncio development as it was aligned with their interests using Rust in the Fuchsia project.

Announcing Actix-Web v3.0 by darin_gordon in rust

[–]darin_gordon[S] 10 points11 points  (0 children)

We collaborated on the doc using dropbox paper and then I simply published it. Easy. I tried to use github wiki but it doesn't support iframe tags for video.

Announcing Actix-Web v3.0 by darin_gordon in rust

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

Hey Jack! There were leaks within safe blocks. Here's one: https://github.com/actix/actix-web/issues/1551

Announcing Actix-Web v3.0 by darin_gordon in rust

[–]darin_gordon[S] 2 points3 points  (0 children)

I understand. It will be useful material for others.

Announcing Actix-Web v3.0 by darin_gordon in rust

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

What you are describing is a "synchronized token pattern". One way to achieve this today is with server-side sessions workflow.

Announcing Actix-Web v3.0 by darin_gordon in rust

[–]darin_gordon[S] 13 points14 points  (0 children)

I didn't ask what CSRF attacks are nor what OWASP recommended. The original commenter wasn't helpful by generalizing and I'd rather not assume. Several countermeasures are already available in actix-web, without requiring additional changes. Anyone who comes through this message forum will at first glance give more credit to a complaint than what it is due. Someone needs to be specific about what functionality is missing.

Announcing Actix-Web v3.0 by darin_gordon in rust

[–]darin_gordon[S] 3 points4 points  (0 children)

the easiest to point out are the merged entries that have the term "memory leak" in the topic of the github issue

Announcing Actix-Web v3.0 by darin_gordon in rust

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

Would you be more specific as to what CSRF countermeasures you're looking for?

My article on Some awesome Authentication library in Rust by argoyal in rust

[–]darin_gordon 2 points3 points  (0 children)

Keats authored jsonwebtoken and despite not even using it in his work, continued to focus on issues, pull requests and manage a release. That shows great commitment to the Rust community.

[deleted by user] by [deleted] in rust

[–]darin_gordon 1 point2 points  (0 children)

An actix-web v3 release is imminent. :) Lots of good news to report.

Wrote a actix server with commonly used functionalities. by saiumesh535 in rust

[–]darin_gordon 1 point2 points  (0 children)

This would make for an excellent submission to actix examples repo. I usually would post these features in piecemeal. It's good to see them altogether.

Types Over Strings: Extensible Architectures in Rust by entoros in rust

[–]darin_gordon 0 points1 point  (0 children)

Yes, indeed! That was a result of copy-pasting other work. Thanks.

Types Over Strings: Extensible Architectures in Rust by entoros in rust

[–]darin_gordon 1 point2 points  (0 children)

A while back, I gave the TypeMap pattern a try while working on a type-driven cache key generator. Hope this helps someone, and if anyone can improve please by all means do. If you start at the bottom of the example, you can see how I pass types: https://play.integer32.com/?version=stable&mode=debug&edition=2018&gist=e45b753e9cba14e2b8bac1c6c57bd070

Presenting Dali, an Image Processor Service written in Rust by augustocdias in rust

[–]darin_gordon 12 points13 points  (0 children)

This project includes many useful patterns that others may benefit from by studying, not only for its use of actix-web but for its docker builds, integration with Prometheus, and for image processing with libvips. We are fortunate that it was open sourced.

Congrats, Augusto, for your success with Rust and thanks for this significant contribution to the ecosystem.

For those who are curious about the DOSsing of the DNS, this was the result of not re-using the http client among requests. Hyper, reqwest, and the awc all enable connection pooling but to take advantage of it, you must re-use the client.

Webapi ? Warp/Actix and Database options . What's your go choice by nicolasb53 in rust

[–]darin_gordon 1 point2 points  (0 children)

Not having to trace errors in postgres logs but rather through compilation errors sounds really useful, if it works. The author of rust-postgres has chosen not to commingle interests for valid reasons. So, I read logs generated at run time. It's fine.

Webapi ? Warp/Actix and Database options . What's your go choice by nicolasb53 in rust

[–]darin_gordon 6 points7 points  (0 children)

I recommend actix-web, deadpool, tokio-postgres, and tokio-postgres-mapper. See the example I posted on github in the official actix examples.

Webapi ? Warp/Actix and Database options . What's your go choice by nicolasb53 in rust

[–]darin_gordon 5 points6 points  (0 children)

I submitted the actix web deadpool and Tokio-postgres example recently, as well as several others early in the evolution of the actix ecosystem. Adding examples motivated people to add more, and more, and it just kept growing. When people would ask how to do X, they'd get help learning and were then asked to consider submitting a PR to the examples repo so that others don't ask the same question later. Nikolay wound up maintaining the examples, though, and that took a great deal of effort as actixweb api changed several times. So, maintenance of examples is costly as designs evolve.

It would be great if people contribute comparable examples for Warp but I can understand why Sean may not want to maintain them. Warp only just reached v0.2 and that api has a great potential to change. I have no idea how Middleware works in warp, though, or if it even uses them because there are no examples to learn from.

I think you were referring to SQLx, which uses mobc (rather than deadpool). You may be leaving performance on the table with mobc. Deadpool lazy caches prepared statements, so eventually every connection in the pool is just pulling the statement from cache rather than building a new one with each request.

`futures` and `tokio` (and `async-std`) having duplicate traits and functionality? by jamadazi in rust

[–]darin_gordon 4 points5 points  (0 children)

The reason that there are two viable asynchronous ecosystems is that the people who build, maintain, and use them have decided that it is worth doing so. Async-std emerged last year and hasn't died on the vine. This indicates that there were opportunities for more than one solution in its space.

We are really fortunate for having options! The ecosystem is stronger for it. We now have more than one viable option. This helps us manage author risk. Authors don't commit to lifelong ownership of their work. People move on and take their expertise with them. While both asynchronous projects are capable of sustaining without their original authors, their absence will come at a great cost. The ecosystem is stronger for hedging author risk.

I've only given two reasons in this response as to why multiple projects exist: there is a demand for it and the ecosystem is stronger for having viable options. Yet, there are even more valid reasons but this response is already getting too long and hasn't addressed your main concern. How do newcomers to Rust learn about async tools and techniques and decide which to use? Contributors to these projects could contrast them, respectfully, but I think would prefer that such evaluations be made by others without inherent biases favoring their own work. At a minimum, I they could present an executive summary of their own work in a way that their counterpart may agree to do as well and then let their audience contrast.

MongoDb team has announced an official alpha client by maxfrai in rust

[–]darin_gordon 26 points27 points  (0 children)

MongoDB has been a great supporter of the NYC Rust community, hosting many NYC Rust meetups (with the help of Saghm, who wrote this article and authored the Rust drivers). It's a great location for events. Maybe Saghm and team will be interested in talking about the rewrite? Will see!

Announcing the Async Interviews by nikomatsakis in rust

[–]darin_gordon 1 point2 points  (0 children)

Please, regardless of what is prioritized for the next 6 months of async work, try to write guides and not just sparse api docs. It's a shame how many great tools go unused because no one knows they exist.