English for Loco.rs Developers

Learn the English vocabulary for Loco, the Rails-inspired Rust web framework: scaffolding, controllers, and explaining batteries-included conventions.

Loco deliberately borrows Rails’ conventions and brings them to Rust, so a lot of the vocabulary is about mapping familiar “batteries-included” concepts — scaffolding, generators, background jobs — onto a statically typed, compiled language, and explaining why that trade-off is worth it.

Key Vocabulary

Batteries-included — a framework philosophy where common needs (authentication, background jobs, mailers, ORM) ship built in and pre-wired, rather than requiring the developer to assemble them from separate crates. “We didn’t have to evaluate five different crates for background jobs and auth — Loco is batteries-included, so those pieces are already wired up and ready to configure.”

Scaffolding / code generation — CLI commands that generate boilerplate files (models, controllers, migrations) from a single command, following established conventions, so a new resource can be created quickly and consistently. “Instead of hand-writing the model, controller, and migration separately, we ran the scaffolding command and got all three generated in a consistent shape.”

Convention over configuration — the design principle that the framework assumes sensible defaults for file layout and naming, reducing the number of decisions and config files a developer needs to write. “We’re not debating where this file should live — convention over configuration means Loco already has an opinion, and we’re following it.”

Controller / route handler — the layer of code that receives an HTTP request, coordinates any needed logic, and returns a response, analogous to controllers in Rails or handlers in other Rust web frameworks. “This logic doesn’t belong directly in the controller — it should live in the model or a service layer, with the controller just orchestrating the call.”

Background job / worker — asynchronous, queued work that runs outside the request-response cycle, useful for anything that shouldn’t block the user waiting on an HTTP response. “Sending this email inline is going to slow down the response — let’s push it to a background job instead so the request returns immediately.”

Common Phrases

  • “Did we scaffold this resource, or is this hand-written boilerplate we should replace with a generator?”
  • “Is this decision actually a convention Loco already has an opinion on, or do we need our own configuration here?”
  • “Should this logic really live in the controller, or does it belong in a service or model instead?”
  • “Is this slow because it’s running inline — should this be a background job?”

Example Sentences

Explaining the framework choice: “We chose Loco specifically because it’s batteries-included — the team didn’t want to spend the first month assembling auth, jobs, and an ORM from five separate crates.”

Reviewing a pull request: “This controller is doing too much — let’s move the business logic into a service and keep the controller focused on request and response handling.”

Discussing performance: “Sending the confirmation email inline is adding real latency to signup — moving it to a background job should fix that without touching the actual signup logic.”

Professional Tips

  • Lead with batteries-included when explaining Loco to a Rust developer used to assembling frameworks from individual crates — it’s the single biggest selling point to communicate up front.
  • Use scaffolding commands consistently across the team so generated code stays uniform — deviating early creates inconsistency that’s hard to unwind later.
  • Push back diplomatically in reviews when a controller accumulates business logic that should live elsewhere — it’s a common anti-pattern carried over from looser frameworks.
  • Default anything with unpredictable latency (emails, external calls, exports) to a background job rather than handling it inline in the request cycle.

Practice Exercise

  1. Explain to a Rust developer unfamiliar with Rails-style frameworks what “batteries-included” means in practice.
  2. Describe why scaffolding commands help keep a codebase consistent across a team.
  3. Write a sentence recommending that a specific piece of logic move from a controller to a background job.