Cargando…

Modern systems programming with Scala Native write lean, high-performance code without the JVM /

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Whaling, Richard (Autor)
Formato: Electrónico eBook
Idioma:Inglés
Publicado: Raleigh : The Pragmatic Bookshelf, 2020.
Temas:
Acceso en línea:Texto completo (Requiere registro previo con correo institucional)
Tabla de Contenidos:
  • Cover
  • Table of Contents
  • Acknowledgments
  • Foreword
  • Preface
  • Who This Book Is For
  • What's In This Book
  • Working with the Code
  • Online Resources
  • Systems Programming in the Twenty-First Century
  • What Is Systems Programming?
  • Moving Toward Modern Systems Programming
  • Why Scala Native?
  • What Makes Scala Native Different
  • Part I-Foundations of Systems Programming
  • 1. The Basics: Input and Output
  • Working with Output
  • Working with Input
  • Case Study: Google NGrams
  • What's Next
  • 2. Arrays, Structs, and the Heap
  • The Stack and the Heap
  • Structs, Arrays, and Sorting
  • Sorting an Array
  • Aggregation at Scale
  • What's Next
  • 3. Writing a Simple HTTP Client
  • Defining Terms
  • Working with TCP
  • Making a TCP Connection
  • Testing Network Code with Netcat
  • Introducing HTTP
  • Implementing HTTP
  • Testing Our Code
  • What's Next
  • 4. Managing Processes: A Deconstructed Shell
  • Running a Program
  • Introducing exec
  • What Went Wrong?
  • Introducing Concurrency with fork() and wait()
  • Supervising Multiple Processes
  • Working with Pipes
  • What's Next
  • 5. Writing a Server the Old-Fashioned Way
  • Understanding How a Server Works
  • Building Our Server
  • Creating a Minimum Viable Server
  • Handling HTTP
  • Performance Testing with Gatling
  • What's Next
  • Part II-Modern Systems Programming
  • 6. Doing I/O Right, with Event Loops
  • Blocking and Polling
  • Introducing libuv
  • Working with Asynchronous TCP Sockets
  • Building an Asynchronous HTTP Server
  • What's Next
  • 7. Functions and Futures: Patterns for Distributed Services
  • Designing an Asynchronous API
  • Introducing Futures
  • Implementing Futures
  • Implementing an ExecutionContext
  • Futures and Promises
  • Introducing libcurl
  • Asynchronous curl
  • What's Next
  • 8. Streaming with Pipes and Files
  • Looking at Streams, Files, and Descriptors
  • Streaming Pipe Input in libuv
  • Streaming File Input in libuv
  • Streaming File Output in libuv
  • Stream Processors
  • What's Next
  • 9. Durability: An Embedded Key-Value Database with LMDB
  • Introducing Embedded Storage
  • Defining LMDB Concepts
  • Working with the LMDB API
  • Serialization and Deserialization with JSON
  • Putting LMDB on the Web
  • What's Next
  • 10. Services: Encapsulation and Abstraction for Modern Designs
  • Services and Distributed Systems
  • Parsing, Revisited
  • Moving from Server to Service
  • Implementing an Idiomatic Service DSL
  • Integrations and Ecosystems
  • The Way Forward
  • A1. Setting Up the Environment
  • Running Scala Native on Mac OS
  • Why Use Containers?
  • Installing and Configuring Docker
  • Running Scala Native in Docker
  • Index
  • SYMBOLS
  • DIGITS
  • A
  • B
  • C
  • D
  • E
  • F
  • G
  • H
  • I
  • J
  • K
  • L
  • M
  • N
  • O
  • P
  • Q
  • R
  • S
  • T
  • U
  • V
  • W
  • Z