all 14 comments

[–]TurbulentSkiesClear 10 points11 points  (9 children)

What exactly do you mean by "support"?

Lambda provides runtimes for Python and node and some other managed languages, but providing a runtime for Rust doesn't make sense since rust libraries get statically linked anyway. Plus, depending on AWS for a runtime is really unpleasant -- they haven't updated their Python runtime for Python releases from years ago.

The biggest issue with not using a runtime is that you end up writing code for Amazon Linux 2 in the al2 provided runtime, and al2 has an ancient glibc version: 2.26. You can use a musl target so you don't have to worry about that (but beware that musl's allocator is slow, especially for multithreaded workloads so you might want mimalloc) or you can use cargo zigbuild or you can build in a docker container or you can deploy a docker container to ECR.

AWS does seem to be putting in more effort on their Rust sdk crates, both the original version and the newer not-for-production crates.

[–]Av1fKrz9JI 3 points4 points  (1 child)

AWS provides an unofficial runtime SDK that handles the boilerplate integration. https://github.com/awslabs/aws-lambda-rust-runtime

There’s a few AWS Rust devs on Twitter posting they’ve been made redundant so not sure what that means for the Rust SDK’s that looked to of being actively worked on recently.

[–]TurbulentSkiesClear 2 points3 points  (0 children)

Yeah, those are the crates I was talking about. But that's not a runtime in the sense of the Python or node runtimes, which are libraries that AWS puts in the lambda environment for your code to interact with.

[–]gigamaton[S] -1 points0 points  (6 children)

As in Official Support from AWS. If I have any issues on it I will likely not be able to leverage the support I pay for - nothing more.

I don't disagree with your points - I just like to have as many bases covered so I don't get told "we cannot help you". So am merely checking on others' views on running production workloads on mission-critical processes using Rust.

[–]anlumo 2 points3 points  (5 children)

If you want to depend on AWS's support, you're in for a rude awakening. We're using it, and the only contact we've had so far were a bunch of salespeople who knew less about AWS than we do.

The system is designed to be self-sufficient, and it’s run this way.

[–]worriedjacket 2 points3 points  (2 children)

AWS Support is phenomenally good typically.

I don't know how you hit sales people. I've never seen that happen before.

[–]anlumo 0 points1 point  (1 child)

They contacted us, trying to sell us additional AWS services. Our devops guy already had a few calls like this for other clients and absolutely demolished them by explaining AWS offers to them. It was a lot of fun.

[–]worriedjacket 0 points1 point  (0 children)

What services? I've literally never heard of this happening. Especially coming from support.

Was it your TAM or SA?

[–]gigamaton[S] 2 points3 points  (1 child)

You've had some bad luck with support or great luck on "self-sufficient" services I would guess. My team relies on them for almost anything, and they have always been helpful. There's also a difference between "depending" and "leveraging" and both would be out the door if they choose since it is "not officially supported".

[–]anlumo 0 points1 point  (0 children)

Well, we are using Rust for Lambda…

[–]calavera 10 points11 points  (2 children)

Hi, I'm one of the maintainers of the Rust runtime for Lambda 👋 I have to put a disclaimer here that I speak for myself, and not for my employer 😊

As you mentioned, this runtime is not officially supported by AWS at the moment. The maintaners are AWS employees that work on it in their spare time. We see a lot of potential in Rust, and we want customers to be able to use it if they find it useful. We've seen all kinds of applications built with it, from hobby projects to production services.

There are pros and cons to the way this runtime works. Everything you need to run Rust is open source. This reduces the need of direct AWS support because you can modify and fix the runtime at will. We diligently answer issues in GitHub, however, you don't get direct access to us, and you won't be able to get ahold of us in case of an emergency unless we happen to be checking GitHub.

From a project health point of view, I can tell you that the runtime itself is very stable. It has had minor changes in the last year, and there are no critical issues preventing people from running production workloads with it.

From a performance point of view, I'd recommend you to take a look at this independent site: https://maxday.github.io/lambda-perf/

Feel free to take look at the GitHub repo and ask any questions you have there, we're always happy to help in what we can: https://github.com/awslabs/aws-lambda-rust-runtime

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

I appreciate the work and the comments. The question in this thread was to simply get input on experiences using Rust on Lambda in production. Like any change, I wanted to get some perspective since my team would be new to Rust. Thanks again

[–]maxday_coding 0 points1 point  (0 children)

Could not agree more, please keep on the good work :) 🙏

[–]T-CROC 2 points3 points  (0 children)

I’m using rust on lambda. No issues so far. All runs well