Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Go1.22 Release Party archiveパッケージの新機能を検証する
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
maito1201
March 18, 2024
75
0
Share
Go1.22 Release Party archiveパッケージの新機能を検証する
https://gocon.connpass.com/event/310606/
maito1201
March 18, 2024
More Decks by maito1201
See All by maito1201
Go1.24 Release Party Goのiterを更に使いこなそう
maito1201
0
93
アレクサアプリを開発してみたら中々大変だった話
maito1201
0
740
Vue.js & Electronデスクトップアプリを作ろう
maito1201
2
2k
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.4k
Why Our Code Smells
bkeepers
PRO
340
58k
Paper Plane
katiecoart
PRO
1
49k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.5k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
140
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
190
Measuring & Analyzing Core Web Vitals
bluesmoon
9
800
Faster Mobile Websites
deanohume
310
31k
Documentation Writing (for coders)
carmenintech
77
5.3k
Facilitating Awesome Meetings
lara
57
6.8k
Statistics for Hackers
jakevdp
799
230k
Accessibility Awareness
sabderemane
0
92
Transcript
Go1.22 Release Party archiveパッケージの 新機能を検証する
自己紹介 Masahiko Ito オカキチCTO 去年のGo Conferenceスタッフ 今年はサボり中
archiveパッケージの新機能とは zipとtarにAddFSが実装された
AddFSとは fs.FSを引数で投げるとzipなりtarなりに固めてくれる なんだかおもしろそう
AddFSのメリット これが実装される前は、複数ファイルをまとめて圧縮ファイルにするには、 ファイル一つ一つをzipに詰めていく処理を自分で頑張って書いていた
AddFSのメリット 詳しくはフューチャー技術ブログ Go 1.22リリース連載 archive/tar, archive/zip, bufio, io に記載
遊んでみた go:embedを使って作ったembed.FS構造体にhtmlファイルを突っ込み、 http.FS関数を利用すると 20行くらいでWEBサイトのプレビューができる
遊んでみた 詳しくはフューチャー技術ブログに
遊んでみた go run main.goでlocalhost:8080へのアクセスに対しhtmlを返却できる
遊んでみた zipHandlerを実装 http Headerを整える必要があるが、10行程度の処理でzipファイルをhttpレスポンス として返却できる
遊んでみた /zipにアクセスするとzipHandlerが実行されるように実装 localhost:8080/zipにアクセスすると、ファイルダウンロードが実行される zipの中には確かにhtml一式が格納されている
遊んでみた tarファイルも完全に同じノリで実装できる
まとめ ファイル、フォルダを加工する実装としては、 io/fsに多数の機能が存在し、今後も進化するはず またembed.FSのように、FSインターフェースを満たすものが生まれることで、 新しい機能が提供されることもある その恩恵をarchiveパッケージが享受できるようになる という夢が広がる新機能が追加された
まとめ たとえば、GitHubの中身をFSインターフェースを満たす実装にするライブラリがあるの で、Download ZIPボタンの代わりに tarファイルで受け取る処理を書いてみる、とか...