aboutsummaryrefslogtreecommitdiff
path: root/content/posts/2022-03-02-tiny-binaries-redux.md
blob: 2596aceb2dd1e8cabc85abbf319ed7939cb67330 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
---
slug: tiny-binaries-redux
title: "Tiny Binaries Redux"
date: "2022-03-02T01:03:47-04:00"
---
I regenerated the [Tiny Binaries][] chart with the following changes:

* Added [Rust 1.59][].
* Added [TinyGo 0.22.0][tinygo].
* Replaced [Go 1.18beta1][] with [Go 1.18rc1][].

### Results

{{< figure
  src="/files/posts/tiny-binaries-redux/sizes-all.svg"
  class=image
  caption="All Static Binary Sizes"
>}}

### Notes

* [TinyGo][] binaries are ... tiny!
* [Go 1.18rc1][] generates slightly larger binaries than [Go
  1.18beta1][].
* [Rust 1.59][] generates slightly smaller binaries than [Rust
  1.57][rust 1.57].
* [UPX][] still makes a huge difference.

See the [tiny-binaries GitHub repository][repo] for additional details
and a table of results.

[tiny binaries]: {{< ref "2021-12-31-tiny-binaries.md" >}}
  "Original Tiny Binaries article."
[repo]: https://github.com/pablotron/tiny-binaries
  "Tiny Binaries GitHub repository"
[rust]: https://www.rust-lang.org/
  "Rust programming language"
[rust 1.57]: https://blog.rust-lang.org/2021/12/02/Rust-1.57.0.html
  "Rust 1.57.0 release announcement."
[rust 1.59]: https://blog.rust-lang.org/2022/02/24/Rust-1.59.0.html
  "Rust 1.59.0 release announcement."
[go 1.18beta1]: https://go.dev/
  "Go programming language, version 1.18beta1."
[go 1.18rc1]: https://go.dev/dl/#go1.18rc1
  "Go 1.18rc1 download."
[tinygo]: https://tinygo.org/
  "TinyGo: Small Go compiler."
[upx]: https://upx.github.io/
  "Ultimate Packer for eXecutables."