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
sksat
June 07, 2023
Programming
0
280
AE Rust 勉強会: github-webhook-rs
アークエッジ・スペース Rust 勉強会の懇親会で突発 LT したやつ
#arkedge_lt
connpass:
https://connpass.com/event/282286/
sksat
June 07, 2023
Tweet
Share
More Decks by sksat
See All by sksat
探査機自作ゼミ2025スライド
sksat
3
840
人になにかを教えるときに考えていること(2025-05版 / VRC-LT #18)
sksat
5
1.2k
人工衛星開発のための C2A フレームワークとその開発体験
sksat
1
460
人工衛星の開発体験向上のために、ソフトウェアからできること
sksat
4
820
3ヶ月でできる! 探査機自作ゼミ教材自作入門
sksat
6
3.3k
セキュリティ・キャンプ全国大会2024 S17 探査機自作ゼミ 事前学習・当日資料
sksat
4
28k
万国のサーバ管理者よ, 自動化せよ!
sksat
1
8k
teleka.suを支える技術
sksat
1
16k
ふつうのLinuxプログラミング-プロセスとハードウェア
sksat
26
8.1k
Other Decks in Programming
See All in Programming
Amazon Bedrock Knowledge Bases Hands-on
konny0311
0
150
AI 時代だからこそ抑えたい「価値のある」PHP ユニットテストを書く技術 #phpconfuk / phpcon-fukuoka-2025
shogogg
1
460
Bakuraku E2E Scenario Test System Architecture #bakuraku_qa_study
teyamagu
PRO
0
750
モビリティSaaSにおけるデータ利活用の発展
nealle
0
190
MCPサーバー「モディフィウス」で変更容易性の向上をスケールする / modifius
minodriven
8
1.5k
CSC509 Lecture 11
javiergs
PRO
0
310
ビルドプロセスをデバッグしよう!
yt8492
0
310
AI駆動開発ライフサイクル(AI-DLC)のホワイトペーパーを解説
swxhariu5
0
930
Dive into Triton Internals
appleparan
0
490
乱雑なコードの整理から学ぶ設計の初歩
masuda220
PRO
31
12k
CloudflareのSandbox SDKを試してみた
syumai
0
150
Agentに至る道 〜なぜLLMは自動でコードを書けるようになったのか〜
mackee
5
1.4k
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
4 Signs Your Business is Dying
shpigford
186
22k
Bash Introduction
62gerente
615
210k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Making Projects Easy
brettharned
120
6.5k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
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 で書いてもいいんじゃないかとか言わない