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
210
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
人工衛星開発のための C2A フレームワークとその開発体験
sksat
1
220
人工衛星の開発体験向上のために、ソフトウェアからできること
sksat
4
600
3ヶ月でできる! 探査機自作ゼミ教材自作入門
sksat
6
1.3k
セキュリティ・キャンプ全国大会2024 S17 探査機自作ゼミ 事前学習・当日資料
sksat
3
11k
万国のサーバ管理者よ, 自動化せよ!
sksat
1
7.1k
teleka.suを支える技術
sksat
1
15k
ふつうのLinuxプログラミング-プロセスとハードウェア
sksat
26
7.8k
小型ハイブリッド用フライトシミュレータの開発
sksat
0
1k
大学生でもできる!ハイブリッドロケット入門
sksat
0
1.5k
Other Decks in Programming
See All in Programming
令和7年版 あなたが使ってよいフロントエンド機能とは
mugi_uno
10
5k
PHPカンファレンス 2024|共創を加速するための若手の技術挑戦
weddingpark
0
130
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
580
AWSのLambdaで PHPを動かす選択肢
rinchoku
2
390
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
400
サーバーゆる勉強会 DBMS の仕組み編
kj455
1
300
知られざるDMMデータエンジニアの生態 〜かつてツチノコと呼ばれし者〜
takaha4k
0
130
Запуск 1С:УХ в крупном энтерпрайзе: мечта и реальность ПМа
lamodatech
0
940
AIレシート読み取り機能をRuby on Rails on AWSで実現するLLMにまつわるアレコレ / AI-based receipt reading function powered by LLM on Ruby on Rails on AWS
moznion
3
120
『改訂新版 良いコード/悪いコードで学ぶ設計入門』活用方法−爆速でスキルアップする!効果的な学習アプローチ / effective-learning-of-good-code
minodriven
28
4k
Flatt Security XSS Challenge 解答・解説
flatt_security
0
710
return文におけるstd::moveについて
onihusube
1
1.4k
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
192
16k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
The Language of Interfaces
destraynor
155
24k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.5k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
BBQ
matthewcrist
85
9.4k
Writing Fast Ruby
sferik
628
61k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
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 で書いてもいいんじゃないかとか言わない