Recipes

Tools used:

In the app proper

Usual New
postgres SurrealDB (not using this, I wanna show off sqlx)
Spring Actix Web
React Leptos (not using this, gave up, but using some other cool stuff)
Minio Garage
curl hurl
Stripe Hyperswitch (not using this)
esbuild/Webpack Vite with SWC and later with Rolldown

In my terminal

Usual New
tmux zellij
Neovim still Neovim, but with bob, or helix, or zed
nvm/rubyenv/pyenv mise
cd/z zoxide
oh-my-zsh prompt starship
grep ripgrep
find fd
cat bat
du dust
ls eza
lazygit gitui
vscode neovide
tldr tealdeer
zsh nu (I'm not using this one, too used to zsh)
ctrl-r mcfly && mcfly-fzf
make just

Prerequisites

# Installing tools we need

cargo install cargo-binstall
cargo binstall trunk
cargo binstall hurl

# Setting compilation targets && switching to nightly compiler (needed for Leptos)

rustup toolchain add nightly
rustup override set nightly
cd frontend
rustup target add wasm32-unknown-unknown
rustup component add rust-analyzer

Issues

  • Rust is a very slow to write in language
    • But a very correct language!
  • Steep learning curve
  • Integrating with existing JS libraries is a bit of a pain
    • this was written back when the frontend was in Rust
  • Async traits have caveats (for library developers mostly)
  • Cannot use pooled connections with Neon (issue in sqlx, just use normal connections rather than Neon's connection pooling)

Others

Energy efficiency across programming languages Cargo script? LINQ in Rust Python-like list comprehension Are we learning yet? Are we web yet? sccache

mk48.io