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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
sksat
June 07, 2023
Programming
320
0
Share
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
同時複数機開発・運用のDevOpsサイクル高速化のための取り組み
sksat
0
1.1k
探査機自作ゼミ2025スライド
sksat
3
2k
人になにかを教えるときに考えていること(2025-05版 / VRC-LT #18)
sksat
6
2.3k
人工衛星開発のための C2A フレームワークとその開発体験
sksat
1
560
人工衛星の開発体験向上のために、ソフトウェアからできること
sksat
4
1.3k
3ヶ月でできる! 探査機自作ゼミ教材自作入門
sksat
6
4k
セキュリティ・キャンプ全国大会2024 S17 探査機自作ゼミ 事前学習・当日資料
sksat
4
34k
万国のサーバ管理者よ, 自動化せよ!
sksat
1
8.3k
teleka.suを支える技術
sksat
1
17k
Other Decks in Programming
See All in Programming
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
0
220
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
290
ふつうのFeature Flag実践入門
irof
7
3.4k
Hive Metastoreを通して学ぶIceberg REST Catalog ― 仕様から実装まで
okumin
0
310
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
210
AIエージェントと協働するCLI開発 — BunとOpenClawで学んだこと
yoshikouki
1
230
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
3
1.8k
Agentic UI beyond Chats Architecture Patterns & Open Standards @ngMunich 05/2026
manfredsteyer
PRO
0
190
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
11k
Copilot CLI の継戦能力を高める コンテキスト管理
nozomutu
1
1.1k
ECR拡張スキャンでSBOMを収集して サプライチェーン攻撃の影響調査を 爆速で終わらせてみた
akihisaikeda
2
210
新規プロダクトを高速で生み出すハーネスエンジニアリング
seanchas116
18
7.6k
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
370
Become a Pro
speakerdeck
PRO
31
6k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
170
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
710
The SEO identity crisis: Don't let AI make you average
varn
0
480
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
560
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
The Invisible Side of Design
smashingmag
302
52k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
470
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
220
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
200
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 で書いてもいいんじゃないかとか言わない