Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Go1.22 Release Party archiveパッケージの新機能を検証する
Search
maito1201
March 18, 2024
81
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
110
アレクサアプリを開発してみたら中々大変だった話
maito1201
0
810
Vue.js & Electronデスクトップアプリを作ろう
maito1201
2
2.2k
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
260
Typedesign – Prime Four
hannesfritz
42
3.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8k
Utilizing Notion as your number one productivity tool
mfonobong
4
610
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
450
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
How to make the Groovebox
asonas
2
2.5k
Thoughts on Productivity
jonyablonski
76
5.4k
A designer walks into a library…
pauljervisheath
211
25k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
530
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ファイルで受け取る処理を書いてみる、とか...