go-internals is a work-in-progress book about the internals of the Go (1.10+) programming language.

Table of Contents

Click here for the GitBook version.


  • Concise: The book aims to be as concise as possible, encouraging code and diagrams over lengthy prose.

  • Community-effort: I myself am learning as I go through the writing of this book. I will make mistakes along the way. Hopefully the community can help in pointing out and correcting these mistakes.

  • Beyond the theory: The book will not just cover the theory, but the actual implementation too. Assumptions will be proven or invalidated via experiments and measurements.

  • Up-to-Date: The book will try to keep up-to-date with new Go versions being released.

  • Experienced audience: The Go community has created loads of great introductory material for newcomers. Unfortunately we're still lacking good resources when it comes to the more advanced stuff. This books hopes to help solve this issue.


All kinds of contributions are very much welcome.

Don't hesitate to open an issue for e.g...:

  • pointing out technical or english mistakes

  • suggesting improvements and/or additions to existing chapters

  • suggesting external links that might be of interest

  • ..and pretty much anything else you can think of, really!


Clement Rey <cr.rey.clement@gmail.com> (@teh_cmc)


Licensed under the BY-NC-SA Creative Commons 4.0 International Public License

Last updated