Is Rust a good choice to build a new SaaS corporate platform?

Is Rust a good choice to build a new SaaS corporate platform?

How does Rust currently (February 2023) compares to Ruby on Rails in terms of productivity and basic library (authentication, authorization, file attachment, ORM, etc) availability?

What is the Rust Framework closest to Ruby on Rails?

What is the most complete Rust Web or FullStack framework?

How long does it take for interns (with no experience) to become operational in Rust?

How fast would it be to add new features in Rust to an existing Rust project?
(In comparison to the new features in ruby and existing the Ruby on Rails project or new Python to an existing Django project)

There’s a lot of existing frameworks and libraries for Rust, such as Actix, Rocket and others worth mentioning.

You probably will take a look.

Hello,

From what you say, unfortunately I think Rust is not a good fit for your needs. Rust is a great choice if you have an existing team with experience and / or excitement about the language, if you are doing low-level software development and if you need safe, high-performance code.

Rust frameworks do not get in to the top-25 list of currently used web frameworks according to the latest Stack Overflow survey. I would expect new interns with no experience to need a lot of expert support to become quickly operational in rust. I would expect adding SaaS features to be much quicker in a high-level language such as Python, Typescript, ... I suggest asking around locally in your network to choose a language where you can get support from freelancers / other developers. When I did this we ended up settling on Python and Django Rest Framework because our team already knows Python, local support is available, and Django provides some structure for people starting out.

One way to test this would be to pick two or three frameworks in different languages (e.g. Rust, Python and Ruby) and build a very small proof of concept in a fixed time limit, see which you are most comfortable with.

I am still looking for opportunities to include some rust for small tasks (microservices), file parsing or other similar jobs within our Django project.

I hope this helps,

Graham

2 Likes

What does "corporate" mean here?

It sometimes means "for internal use, and thus perf isn't really that important". If you're doing a standard CRUD application, and can just buy bigger machines to run it on for the relatively-limited number of people who need to use it, you plausibly don't need Rust for it. Sticking with a boring traditional way of doing things might be fine.

Can you do it in Rust? Absolutely. And if you're doing anything fancy with concurrency, for example, it might be a big help. Hard to say whether it's a good choice for a specific project or not without more info, though.

1 Like

@graham_knapp 's post is a great summary of concerns with Rust for enterprise software and SaaS-type of applications.

I must, however, add that if you are already have decent Rust expertise, go for it. I'm using Rust for 2 years in production for my backend services (mostly RESTful CRUD stuff with actix-web) and it works like a charm. I can honestly say that I would never have been as productive if it weren't for Rust. In 2 years I never had an unexpected runtime error and the type system does most of the heavy lifting for me. It is easy to write well-maintainable enterprise software in Rust. If I compare that to my previous endeavours with Node and Python and how my codebases deteriorated rather quickly when I started adding features, I've saved myself a lot of headache. It probably took me a little longer to get started (given that Rust requires you to be more strict with typing and error handling which I normally like to ignore during prototyping), but I saved a lot of time not spent debugging later.

The main downside though is that the ecosystem isn't as evolved as bigger, more established web-frameworks in other languages, like Ruby on Rails, Django, flask, Next.js, etc. So you may have to put a little elbow-grease into writing functionality yourself that you'd get handed out of the box in other frameworks. In my case I remember that there was no real support for OpenID Connect/JWT tokens in actix-web, which I had to build myself to an extend. Not too bad, but if you have a tight time frame, unexpected problems like this can throw you off.

4 Likes

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.