Modern Command-Line Rust
Smith Stallard
Verkauft von PBShop.store US, Wood Dale, IL, USA
AbeBooks-Verkäufer seit 7. April 2005
Neu - Softcover
Zustand: Neu
Versand innerhalb von USA
Anzahl: Mehr als 20 verfügbar
In den Warenkorb legenVerkauft von PBShop.store US, Wood Dale, IL, USA
AbeBooks-Verkäufer seit 7. April 2005
Zustand: Neu
Anzahl: Mehr als 20 verfügbar
In den Warenkorb legenNew Book. Shipped from UK. Established seller since 2000.
Bestandsnummer des Verkäufers L2-9798257402562
Here it is.
Modern Command-Line Rust: A Practical Guide to Tools and Automation
You've written the tool. It works on your machine. Then it goes into CI, or someone else's environment, or a pipeline you didn't design, and something breaks in a way you can't immediately explain. The binary assumes a TTY that isn't there. Color codes leak into downstream parsers. A panic dumps an unhelpful stack trace into a log that a JSON processor was expecting to be clean. The tool wasn't wrong, exactly. It just wasn't ready for the world it entered.
This is the problem that most Rust CLI tutorials don't address—because tutorials test in controlled conditions, and real tools don't live there.
Modern Command-Line Rust was written from the other side of those failures. Not from a position of theoretical best practices, but from years of building tools that broke in production, maintaining scripts that grew beyond what scripts were meant to hold, and learning—sometimes slowly—what separates a CLI that people actually use from one that gets quietly abandoned after the second edge case.
The tools that survive aren't always the fastest. They aren't always the most featureful. They're the ones that behave correctly when the environment isn't what the author expected. They compose cleanly with other tools without corrupting data. They fail clearly, with messages that tell you what happened and why, instead of swallowing errors or panicking into silence. They start fast, stay predictable, and don't surprise users who aren't looking for surprises.
Getting there requires making decisions that most documentation glosses over—when to check for a TTY and change behavior accordingly, how to structure a project so it stays maintainable past the first thousand lines, how to handle dependencies without accumulating invisible risk, how to write error types that carry meaning instead of just propagating noise, how to make a tool portable across environments you don't control. These decisions are rarely the exciting ones. They're the ones that determine whether a tool earns a permanent place in someone's workflow or gets replaced the first time it misbehaves.
This book works through all of it. Project structure that doesn't collapse as the codebase grows. Cargo beyond cargo build—workspaces, profiles, dependency auditing, reproducible builds. Argument parsing that handles the edge cases clap's documentation mentions but doesn't fully explain. Output that knows whether it's talking to a human or a pipeline. Error handling that communicates rather than just propagates. Performance that's real and felt, not just visible in benchmarks. Distribution that actually works on the target machines.
Along the way it draws on tools like ripgrep, fd, and bat—not as things to admire from a distance, but as case studies in specific decisions: why ripgrep's defaults encode years of experience into a single invocation, how fd made opinionated choices that turned out to be right for most people most of the time, how bat stays composable while adding capabilities that lesser tools would use to break composability.
If you've been building Rust CLI tools and something keeps going wrong in ways you can't fully articulate—if your tools work until they're in someone else's hands, or compose until they're in a real pipeline, or perform well until they're on real data—this is the book that names the problem and works through the fix. Not in theory. In the specific, unglamorous detail that real tools require.
„Über diesen Titel“ kann sich auf eine andere Ausgabe dieses Titels beziehen.
Returns Policy
We ask all customers to contact us for authorisation should they wish to return their order. Orders returned without authorisation may not be credited.
If you wish to return, please contact us within 14 days of receiving your order to obtain authorisation.
Returns requested beyond this time will not be authorised.
Our team will provide full instructions on how to return your order and once received our returns department will process your refund.
Please note the cost to return any...
Wenn Sie Verbraucher sind, können Sie gemäß den folgenden Bestimmungen vom Vertrag zurücktreten. Verbraucher ist jede natürliche Person, die zu Zwecken handelt, die nicht ihrer kaufmännischen, gewerblichen, künstlerischen oder beruflichen Tätigkeit zugerechnet werden können.
Informationen zum Widerrufsrecht
Gesetzliches Widerrufsrecht
Sie haben das Recht, den Vertrag innerhalb von 14 Tagen ohne Angabe von Gründen zu widerrufen.
Die Widerrufsfrist beträgt 14 Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Transporteur ist, die letzte Ware oder den letzten Posten oder das letzte Exemplar in Besitz genommen hat.
Um das Widerrufsrecht auszuüben, füllen Sie auf unserer Website unter „Meine Einkäufe" in „Mein Nutzerkonto" eine eindeutige Erklärung elektronisch aus und senden Sie sie ab. Wir werden Ihnen unverzüglich eine Bestätigung über den Eingang eines solchen Widerrufs auf einem dauerhaften Datenträger (z. B. per E-Mail) übermitteln.
Um die Widerrufsfrist einzuhalten, reicht es aus, dass Sie Ihre Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.
Auswirkungen des Widerrufs
Wenn Sie diesen Vertrag widerrufen, erstatten wir Ihnen alle Zahlungen, die wir von Ihnen erhalten haben, einschließlich der Lieferkosten (mit Ausnahme der zusätzlichen Kosten, die entstehen, wenn Sie eine andere Art der Lieferung als die von uns angebotene günstigste Standardlieferung gewählt haben).
Wir können einen Abzug von der Rückerstattung für den Wertverlust der gelieferten Waren vornehmen, wenn der Verlust auf eine unnötige Behandlung durch Sie zurückzuführen ist.
Wir werden die Rückerstattung unverzüglich und nicht später als 14 Tage nach dem Tag vornehmen, an dem wir über Ihre Entscheidung, diesen Vertrag zu widerrufen, informiert wurden.
Für die Rückerstattung verwenden wir dasselbe Zahlungsmittel, das Sie für die ursprüngliche Transaktion verwendet haben, es sei denn, Sie haben ausdrücklich etwas anderes vereinbart; in keinem Fall werden Ihnen aufgrund einer solchen Rückerstattung Gebühren berechnet.
Wir können die Rückzahlung verweigern, bis wir die Waren wieder zurückerhalten haben oder Sie den Nachweis erbracht haben, dass Sie die Waren zurückgesandt haben, je nachdem, was eher eintritt.
Sie müssen die Waren unverzüglich und in jedem Fall spätestens 14 Tage ab dem Tag, an dem Sie uns über den Widerruf dieses Vertrags unterrichten, an PBShop.store US, Springfield Gardens, New York, U.S.A., +44 1285 712917, zurücksenden oder übergeben. Die Frist ist eingehalten, wenn Sie die Ware vor Ablauf der Frist von 14 Tagen zurücksenden. Sie müssen die direkten Kosten der Rücksendung der Waren tragen. Sie haften nur für einen etwaigen Wertverlust der Waren, der auf eine Behandlung zurückzuführen ist, die nicht zur Prüfung der Art, Eigenschaften und Funktionsweise der Waren erforderlich ist.
Ausnahmen vom Widerrufsrecht
Das Widerrufsrecht gilt nicht für:
Books are shipped from our US or UK warehouses. Delivery estimates allow for delivery from either location.
| Bestellmenge | 7 bis 14 Werktage | 7 bis 14 Werktage |
|---|---|---|
| Erster Artikel | EUR 0.00 | EUR 0.00 |
Die Versandzeiten werden von den Verkäuferinnen und Verkäufern festgelegt. Sie variieren je nach Versanddienstleister und Standort. Sendungen, die den Zoll passieren, können Verzögerungen unterliegen. Eventuell anfallende Abgaben oder Gebühren sind von der Käuferin bzw. dem Käufer zu tragen. Die Verkäuferin bzw. der Verkäufer kann Sie bezüglich zusätzlicher Versandkosten kontaktieren, um einen möglichen Anstieg der Versandkosten für Ihre Artikel auszugleichen.