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
AE Rust 勉強会: github-webhook-rs
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
sksat
June 07, 2023
Programming
340
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AE Rust 勉強会: github-webhook-rs
アークエッジ・スペース Rust 勉強会の懇親会で突発 LT したやつ
#arkedge_lt
connpass:
https://connpass.com/event/282286/
sksat
June 07, 2023
More Decks by sksat
See All by sksat
:syncing_time:
sksat
3
910
探査機自作ゼミ2026
sksat
1
590
SIMD
sksat
1
29
同時複数機開発・運用のDevOpsサイクル高速化のための取り組み
sksat
0
1.3k
探査機自作ゼミ2025スライド
sksat
3
2.2k
人になにかを教えるときに考えていること(2025-05版 / VRC-LT #18)
sksat
6
2.5k
人工衛星開発のための C2A フレームワークとその開発体験
sksat
1
690
人工衛星の開発体験向上のために、ソフトウェアからできること
sksat
4
1.5k
3ヶ月でできる! 探査機自作ゼミ教材自作入門
sksat
6
4.1k
Other Decks in Programming
See All in Programming
typoなんかねぇよ
raspython3
0
650
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
130
リアルな遅延を測る仕様
kota_yata
1
140
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
130
[DroidKaigi 26] How We Moved from Android Studio to Slack
thisaay
0
160
이 함수, 실패하면 어떻게 되나요? null부터 Rich Errors까지, Kotlin 에러 처리 15년
haeti2
0
110
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
340
XHTMLが残したもの
yosuke_furukawa
PRO
1
370
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
780
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
MySQLとPostgreSQLって何が違うの?
akagami
PRO
0
160
PyO3 で既存 Python 評価器を Rust core 化する ー wasm-bindgen でブラウザにも配るための設計
kdash
1
280
Featured
See All Featured
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
440
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
510
GitHub's CSS Performance
jonrohan
1033
470k
Six Lessons from altMBA
skipperchong
29
4.5k
My Coaching Mixtape
mlcsv
0
300
Speed Design
sergeychernyshev
33
2.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
390
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Technical Leadership for Architectural Decision Making
baasie
3
550
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Transcript
github-webhook-rs 2023/06/07 アークエッジ・スペース Rust 勉強会 sksat
自己紹介 - sksat - SW部正社員 && 学部2年生(2回目) - 中指を立てているわけではない(アイコン) -
ビルドシステム大臣 - Rust そのものより Cargo.toml と build.rs ばかり書いている - 不自由な開発環境の森を焼き尽くして回っている - 泣きながら CMakeLists.txt も殴る - ときどき社内システム(self-hosted Renovate, hubhook, etc)
hubhook - GitHub webhook を吸い上げて Slack に通知しまくる君 - インターン生時代に Rust
の練習に書いた - OSS - かなりの社員が使っている
なお実装 - Rust の練習で書いた - かなり雑なコード - 勢い良く unwrap() -
まあ panic しても k8s で走ってるのでいいが...... - しかし,通知を取りこぼすのは困る - どこでコケるのか? → webhook payload JSON の deserialize
GitHub webhook payload - かなり巨大な構造の JSON - serde 最高! -
巨大すぎて struct のメンテがダルい - でもできるだけ情報は取りたい - 実物を眺めて書き起こすのは面倒 - たまーに構造が一部変わる
octokit/webhooks - machine-readable, always up-to-date GitHub Webhooks specifications - 丁寧な
JSON Schema がメンテされている - TypeScript の型にも変換されてる - これだ!!!
Rust の型になってほしい!!! - serde-compatible な形で - JSON Schema -> Rust
あるでしょ - ex: schemafy - draft 7 未対応がちで怪しい雰囲気 - 他のファイル読み出しまくってる - 素直に変換すると使い勝手の悪い型に - 共通部分もそれぞれのフィールドとしてダンプされてしまう,など
ところで......? - octokit/webhooks/payload-types/schema.d.ts - TypeScript にはキレイな型がある - こういうのでいいんだよ,こういうので
TypeScript と Rust - なんか聞いたことあるな......?
swc - JS/TS compiler を Rust で書き直そうぜプロジェクト - 今コンパイラって言った?
I have a octokit/webhooks/payload-types/schema.d.ts I have a swc_ecma_parser
Oh!
できた
おわり - https://github.com/sksat/github-webhook-rs - 作ったはいいけどまだ使ってない(え?) - 最近社内ツールをリファクタして回って遊んでいるインターン生にめちゃめちゃリファク タしてもらった(ありがとう) - リファクタによって
JSON Schema 自力で読んでもいい気がしてきた(え?) - こらそこ TS で書いてもいいんじゃないかとか言わない