I love building a startup in Rust. I wouldn't pick it again

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

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • maud

    :pencil: Compile-time HTML templates for Rust

  • pidove

    ... or you can just use a sane FP library like

    https://github.com/paulhoule/pidove

    Some people don't like the Lispy signatures so I did start coding up a version with with a fluent interface but didn't quite finish.

  • 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.

  • cryptography

    cryptography is a package designed to expose cryptographic primitives and recipes to Python developers.

    > A big problem with Rust, long-term, is that the kind of programs that really need it are somewhat out of today's mainstream. It's not that useful for webcrap. It's not that useful for phone apps. The AI people use Jupyter notebooks and Python to drive code on GPUs.

    One thing this is missing is that Rust is useful for libraries callable by many different languages. You may or may not want to use it to build an actual Web app (I personally think it's a solid choice, but reasonable people can disagree). But for building, say, the Python cryptography library [1], which is used as a part of "webcrap" and Jupyter notebooks, Rust is clearly an excellent option. Nobody is going to build core Python infrastructure in Go or Node, and there will always be a need for plumbing libraries.

    [1]: https://github.com/pyca/cryptography

  • FrameworkBenchmarks

    Source for the TechEmpower Framework Benchmarks project

    In a benchmark of how many fortune responses are returned by various web frameworks[0], nodejs returned 80k odd fortunes per second. The fastest c++ framework compared here returned 616k odd fortunes per second.

    Assuming that my application scales by the same amount (big assumption, yes), I could cut AWS costs by 7.7 times (!!!) by using the C++ implementation.

    I'm pretty sure that maintaining a C++ codebase is less than 7.7 times more expensive than Node, even if you throw in extra development time etc. This also ignores the decades worth of excellent tooling we've built up for C++ (static analyzers, fuzzers, etc).

    At a startup, when building things fast matters more than costs, sure. I buy the argument for Node or Python or any other interpreted backend. But once you start to scale, things change after some threshold. Unless you're facebook[1].

    [0]. https://www.techempower.com/benchmarks/#section=data-r21

    [1]. https://developers.facebook.com/blog/post/2010/02/02/hiphop-...

  • rust

    Empowering everyone to build reliable and efficient software.

    GitHub works great for it, for diagnostic tickets in particular you can file them at https://github.com/rust-lang/rust/issues/new?assignees=&labe...

    Even if it is an "it hurts when I do this" without more context it can be useful to bring the problem to our attention (but the more context you provide the higher the change we'll fix the problem).

  • idlib

    A library for working with identifiers of all kinds.

    I had a similar thought a while back [0]. Developing a sane ontology of error types and their implications is a hard problem, but I think it could be done. The subset of errors that is the most frustrating and hard to deal with are ones where, as you point out, the client will have no way to estimate how long a failure mode might persist, at which point you resort to exponential backoff (actually probably an s-curve).

    The issue is that sometimes the solution to the issue would require the client to get up and get out a shovel, and go dig somewhere or something. When the abstractions break down that hard there isn't really a way for the developer of the code to handle that unless they somehow stuff a full blown AGI into their program, and even then it would be a stretch.

    0. https://github.com/tgbugs/idlib/blob/master/docs/identifiers...

  • proposal-explicit-resource-management

    ECMAScript Explicit Resource Management

    I'd prefer something with a more sound type system, and something that makes cleaning up resources easier and more ergonomic.

    This might help with cleanup: https://github.com/tc39/proposal-explicit-resource-managemen...

    But I'm not sure anything will help with the type system. For example, this drives me absolutely insane: https://www.typescriptlang.org/play#code/MYewdgziA2CmB00QHMA...

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • I'd prefer something with a more sound type system, and something that makes cleaning up resources easier and more ergonomic.

    This might help with cleanup: https://github.com/tc39/proposal-explicit-resource-managemen...

    But I'm not sure anything will help with the type system. For example, this drives me absolutely insane: https://www.typescriptlang.org/play#code/MYewdgziA2CmB00QHMA...

  • Newt

    Autogenerate a .Net (C#/EF Core) data project (class library with entities and data contexts) from a Postgres database, plus Graphviz and SQL. (by kcartlidge)

    > Actually, it does work from Linux ... cross-compiled from Linux to Windows.

    Here's a link to the commands I use to generate my cross-platform builds [1]. They are easy enough to stick in a shell script or batch file so you get all the builds with one command. These produce single executables, trimmed for size.

    [1] https://github.com/kcartlidge/Newt#generating-stand-alone-bu...

  • go

    The Go programming language

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