
Advanced Technologies for Application Development
Problem Solving in Go and Rust
Go and Rust as complementary tools for the same class of engineering problems.
Record
About
Go and Rust treated not as rivals but as complementary tools for the same class of engineering problems. The book follows each language from its toolchain to a production HTTP service: Go’s goroutines, channels, select, and context; Rust’s ownership, borrowing, and lifetimes; error handling without exceptions; concurrency the compiler can vouch for; and testing, benchmarking, profiling, and fuzzing.
The emphasis is on solving problems rather than touring syntax, with appendices on secure development, crossing the language boundary, and reading compiler errors.
Contents
- 1The Landscape of Modern Systems ProgrammingBeyond Garbage-Collected Languages · Go: Simplicity as a Feature · Rust: Safety Without Compromise · Comparing Go and Rust · How This Book Is Organized
Part I · Go
- 2Getting Started with GoThe Go Toolchain · Modules and Packages · Program Structure · Development Environments
- 3Types, Variables, and Control Flow in GoBasic Types · Variables and Constants · Operators · Control Flow · Pointers
- 4Functions, Methods, and Error Handling in GoFunctions · Methods · Error Handling · Deferred Execution
- 5Composite Types and Data Modeling in GoArrays · Slices · Maps · Structs · Working with JSON
- 6Interfaces and Generics in GoInterfaces · Generics · Design Patterns with Interfaces
- 7Concurrent Programming with Goroutines and ChannelsConcurrency vs. Parallelism · Goroutines · Channels · The
selectStatement · Synchronization Primitives · ThecontextPackage · Common Concurrency Patterns - 8Testing, Benchmarking, and Profiling in GoThe
testingPackage · Table-Driven Tests · Test Helpers and Utilities · Test Coverage · Benchmarking · Profiling · Fuzzing - 9Building HTTP Services in GoThe
net/httpPackage · Building a REST API · Middleware · Working with Databases · The HTTP Client · Structured Logging withslog
Part II · Rust
- 10Getting Started with RustThe Rust Toolchain · Cargo: The Build System and Package Manager · Program Structure · Development Environments · The Compiler as Teacher
- 11Types, Variables, and Control Flow in RustVariables and Mutability · Scalar Types · Compound Types · Strings · Type Conversions · Control Flow
- 12Ownership, Borrowing, and LifetimesThe Ownership Model · References and Borrowing · Slices · Lifetimes · How This Differs from Go
- 13Structs, Methods, and Data Modeling in RustDefining Structs · Methods and Associated Functions · Deriving Common Functionality · Visibility and Encapsulation
- 14Enums, Pattern Matching, and Error Handling in RustEnums · Pattern Matching with
match·if letandwhile let· TheOption<T>Type · TheResult<T, E>Type · Custom Error Types · When to Panic vs. When to ReturnResult - 15Generics, Traits, and Polymorphism in RustGeneric Types · Traits · Trait Bounds · Trait Objects and Dynamic Dispatch · Common Standard Library Traits · Supertraits
- 16Iterators, Closures, and Collections in RustClosures · Iterators · Collections · Loops vs. Iterators: Performance Comparison
- 17Concurrency and Smart Pointers in RustSmart Pointers · Fearless Concurrency · Message Passing with Channels · Shared State Concurrency · The
SendandSyncTraits · Introduction to Async Programming - 18Testing, Benchmarking, and Profiling in RustUnit Tests · Integration Tests · Test Organization and Control · Mocking and Test Doubles · Benchmarking · Property-Based Testing · Code Coverage and Profiling
- 19Building HTTP Services in RustThe Rust Web Ecosystem · Building a REST API with
axum· Serialization withserde· Middleware with Tower · Database Access withsqlx· The HTTP Client withreqwest· Structured Logging withtracing
Appendices
- ADevelopment Environment Setup
- BGo Quick Reference
- CRust Quick Reference
- DSecure Development in Go and Rust
- EInteroperability Across the Language Boundary
- FBuilding, Shipping, and Operating
- GReading Compiler Errors
Reviews
“This book is a textbook and a detailed source of information, aimed primarily at students and IT professionals who want to become familiar with two modern programming languages and to use them to build reliable, concurrent, predictable applications with a high degree of safety.”
“This book offers a comparative, applied perspective, taking the reader on a practical journey through programming in both languages, so that choosing either one can be a fully informed decision.”
“The sequence of chapters, the balance between fundamental concepts and advanced techniques, and the orientation towards practical applications all speak for the book's value in teaching and in professional practice.”
Cite
@book{bocan2026gorust,
author = {Bocan, Valer},
title = {Advanced Technologies for Application Development: Problem Solving in Go and Rust},
publisher = {Editura Politehnica},
address = {Timișoara},
year = {2026},
pages = {457},
isbn = {978-606-35-0714-4},
language = {english},
note = {In press}
}

