Go IO Fs Embed File Embedding Fs Interface
Definisi
io/fs adalah abstraction atas sistem berkas di Go: menyediakan interface fs.FS yang dipakai untuk membaca file secara uniform, baik dari disk, memory, maupun embed. embed memungkinkan menyematkan file (template, aset statis, SQL) langsung ke dalam binary pada saat compile.
Kapan dipakai
- embed: butuh aset ikut binary tanpa mengandalkan file external (CLI tool, web server tanpa folder
static/, template HTML). - fs.FS: ingin membaca banyak sumber secara seragam, atau menulis test dengan
fstest.MapFStanpa menyentuh disk. - Jangan embed file yang harus bisa diubah saat runtime (konfigurasi dinamis) — embed bersifat read-only sejak compile.
Cara kerja
embed.FS
import "embed"
//go:embed templates/*.html
var templatesFS embed.FS
func render(name