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
94
アレクサアプリを開発してみたら中々大変だった話
maito1201
0
750
Vue.js & Electronデスクトップアプリを作ろう
maito1201
2
2.1k
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
780
Navigating Team Friction
lara
192
16k
Done Done
chrislema
186
16k
Un-Boring Meetings
codingconduct
0
290
Leo the Paperboy
mayatellez
7
1.8k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Designing for Timeless Needs
cassininazir
1
220
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
Utilizing Notion as your number one productivity tool
mfonobong
4
300
The Language of Interfaces
destraynor
162
26k
The agentic SEO stack - context over prompts
schlessera
0
780
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ファイルで受け取る処理を書いてみる、とか...