Op werkdagen voor 23:00 besteld, morgen in huis Gratis verzending vanaf €20

Modern Systems Programming with Scala Native

Write Lean, High-Performance Code without the JVM

Paperback Engels 2020 1e druk 9781680506228
Verwachte levertijd ongeveer 9 werkdagen

Samenvatting

Developers generally build systems on top of the work of those who came before, accumulating layer upon layer of abstraction. Scala Native provides a rare opportunity to remove layers. Without the JVM, Scala Native uses POSIX and ANSI C APIs to build concise, expressive programs that run unusually close to bare metal. Scala Native compiles Scala code down to native machine instructions instead of JVM bytecode. It starts up fast, without the sluggish warm-up phase that’s common for just-in-time compilers. Scala Native programs can seamlessly invoke operating system APIs for low-level networking and IO. And Scala Native lets you control pointers, arrays, and other memory layout types for extreme performance.

Write practical, bare-metal code with Scala Native, step by step. Understand the foundations of systems programming, including pointers, arrays, strings, and memory management. Use the UNIX socket API to write network client and server programs without the sort of frameworks higher-level languages rely on. Put all the pieces together to design and implement a modern, asynchronous microservice-style HTTP framework from scratch.

Take advantage of Scala Native’s clean, modern syntax to write lean, high-performance code without the JVM.

A modern Windows, Mac OS, or Linux system capable of running Docker. All code examples in the book are designed to run on a portable Docker-based build environment that runs anywhere. If you don’t have Docker yet, see the Appendix for instructions on how to get it.

Specificaties

ISBN13:9781680506228
Taal:Engels
Bindwijze:paperback
Aantal pagina's:230
Druk:1
Verschijningsdatum:4-2-2020
Hoofdrubriek:IT-management / ICT

Lezersrecensies

Wees de eerste die een lezersrecensie schrijft!

Over Richard Whaling

Richard Whaling is a data engineer at M1 Finance in Chicago, where he designs large data pipelines using Scala-based technologies like Akka and Spark. He’s made open-source contributions to Scala Native and Apache Kafka, and he blogs and speaks frequently about Scala and other functional programming topics.

Andere boeken door Richard Whaling

Inhoudsopgave

Foundations of Systems Programming

The Basics: Input and Output
-Working with Output
-Working with Input
-Case Study: Google NGrams
-What’s Next

Arrays, Structs, and the Heap
-The Stack and the Heap
-Structs, Arrays, and Sorting
-Sorting an Array
-Aggregation at Scale
-What’s Next

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

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

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

Modern Systems Programming

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

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

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

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

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

Managementboek Top 100

Rubrieken

Populaire producten

    Personen

      Trefwoorden

        Modern Systems Programming with Scala Native