Using Rust at a Startup: A Cautionary Tale

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • go

    The Go programming language

  • > what's missing from Go that makes that impossible?

    The language maintainers don't want to add it: https://github.com/golang/go/issues/19412

  • atlas

    Manage your database schema as code (by ariga)

  • I haven't tried this, but I think you can get fairly close by generating the HTTP/SQL serialization code. When I get time I want to write an openapi schema amd generate the server code, write a db schema and generate the db code (I want to try https://github.com/ariga/atlas with Ent for this), then write the business logic between them and see how well it all works

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • too-many-lists

    Learn Rust by writing Entirely Too Many linked lists

  • I agree mostly with this, however, ownership can be strange in Rust if you’re not familiar with it. Something seemingly simple like a linked list can be challenging to implement.

    https://rust-unofficial.github.io/too-many-lists/

  • rust-magic-function-params

    Discontinued Magical Rust patterns laid out and simplified [Moved to: https://github.com/alexpusch/rust-magic-patterns]

  • I've written a few backend APIs with rust and I have to disagree. Not only have the frameworks managed to get the ergonomics similar to your popular GC lang[0][1], the natural lack of shared mutable state of HTTP handlers means you very rarely have to encounter lifetimes and a lot of the language's advanced features. What's more, now when I go back to work with other languages, I can't help but notice the significant number of unit tests I'd not have had to write in Rust. It doesn't have a Rails and Django but it's an easy pick over anything at the language level.

    A note on performance, Rust's the only langauge where I haven't had the need to update my unit test harnesses to `TRUNCATE` data base data instead of creating a separate db per test on PostgresSQL.

    I'll also like to mention the gem that is SQLx[1]. As someone who's never been satisfied with ORMs, type checked SQL queries that auto-populate your custom types is revolutionary. With the error-prone langauge-SQL boundary covered, I was surprised just how good it can get making use of the builtin PostgreSQL features. Almost to the point that amount of effort the community's put to building great tools like Prisma.js and feel like a fool's errand (at least so for PosgreSQL).

    [0]: https://github.com/alexpusch/rust-magic-function-params

    [1]: https://github.com/juhaku/utoipa

    [3]: lib.rs/crates/sqlx

  • utoipa

    Simple, Fast, Code first and Compile time generated OpenAPI documentation for Rust

  • I've written a few backend APIs with rust and I have to disagree. Not only have the frameworks managed to get the ergonomics similar to your popular GC lang[0][1], the natural lack of shared mutable state of HTTP handlers means you very rarely have to encounter lifetimes and a lot of the language's advanced features. What's more, now when I go back to work with other languages, I can't help but notice the significant number of unit tests I'd not have had to write in Rust. It doesn't have a Rails and Django but it's an easy pick over anything at the language level.

    A note on performance, Rust's the only langauge where I haven't had the need to update my unit test harnesses to `TRUNCATE` data base data instead of creating a separate db per test on PostgresSQL.

    I'll also like to mention the gem that is SQLx[1]. As someone who's never been satisfied with ORMs, type checked SQL queries that auto-populate your custom types is revolutionary. With the error-prone langauge-SQL boundary covered, I was surprised just how good it can get making use of the builtin PostgreSQL features. Almost to the point that amount of effort the community's put to building great tools like Prisma.js and feel like a fool's errand (at least so for PosgreSQL).

    [0]: https://github.com/alexpusch/rust-magic-function-params

    [1]: https://github.com/juhaku/utoipa

    [3]: lib.rs/crates/sqlx

  • rust

    Empowering everyone to build reliable and efficient software.

  • It is a little more complex than that these days

    https://github.com/rust-lang/rust/blob/4e0d0d757e2f1b61ec809...

  • modelbox

    An extensible machine learning model store and model transformation and distribution service

  • I am building modelbox right now - https://github.com/tensorland/modelbox I began building this in Rust while also learning the language. It became quickly very complex as I started introducing streams in async traits. I think in a few years things will get a lot better as more people use Rust for building web services, but I had to go back to Go to be more productive and ship this thing out. I loved how the compiler was forcing me to think harder about life times and such.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • dark

    Darklang main repo, including language, backend, and infra

  • Some languages that try to integrate an HTTP server and a database:

    Ur/Web: http://impredicative.com/ur/

    Dark (Darklang): https://darklang.com/

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • 7 Programming Languages Every Cloud Engineer Should Know in 2024!

    4 projects | dev.to | 5 Mar 2024
  • querySrv errors when connecting to MongoDB Atlas

    3 projects | dev.to | 29 Feb 2024
  • Fast persistent recoverable log and key-value store

    3 projects | news.ycombinator.com | 24 Feb 2024
  • Odin Programming Language

    23 projects | news.ycombinator.com | 1 Jan 2024
  • C++ Should Be C++

    3 projects | news.ycombinator.com | 19 Dec 2023