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
Custom Runtime Lambda empowered by Rust
Search
Yoshihito
July 03, 2020
Programming
0
2.9k
Custom Runtime Lambda empowered by Rust
An introduction about the Lambda custom runtime empowered by Rust language.
Yoshihito
July 03, 2020
Tweet
Share
More Decks by Yoshihito
See All by Yoshihito
TUI App in Rust
yoshihitoh
0
190
Rust tutorial - implement a cli tool.
yoshihitoh
0
230
introduce-rust.pdf
yoshihitoh
2
510
regrowth2018-introduce-reinvent-sessions
yoshihitoh
0
910
mobilemethod-2-about-analytic-data.pdf
yoshihitoh
0
1k
cpp-library-on-browse-nodejs
yoshihitoh
0
2.5k
Other Decks in Programming
See All in Programming
3rd party scriptでもReactを使いたい! Preact + Reactのハイブリッド開発
righttouch
PRO
1
610
as(型アサーション)を書く前にできること
marokanatani
10
2.7k
CSC509 Lecture 09
javiergs
PRO
0
140
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
120
Remix on Hono on Cloudflare Workers
yusukebe
1
300
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
카카오페이는 어떻게 수천만 결제를 처리할까? 우아한 결제 분산락 노하우
kakao
PRO
0
110
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
240
アジャイルを支えるテストアーキテクチャ設計/Test Architecting for Agile
goyoki
9
3.3k
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
1
100
Micro Frontends Unmasked Opportunities, Challenges, Alternatives
manfredsteyer
PRO
0
110
CSC509 Lecture 12
javiergs
PRO
0
160
Featured
See All Featured
Speed Design
sergeychernyshev
25
620
Agile that works and the tools we love
rasmusluckow
327
21k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Faster Mobile Websites
deanohume
305
30k
Teambox: Starting and Learning
jrom
133
8.8k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
900
How to Ace a Technical Interview
jacobian
276
23k
Adopting Sorbet at Scale
ufuk
73
9.1k
Site-Speed That Sticks
csswizardry
0
28
GitHub's CSS Performance
jonrohan
1030
460k
Facilitating Awesome Meetings
lara
50
6.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Transcript
RustͰ࢝ΊΔ Custom Runtime Lambdaೖ 2020/7/3 CXࣄۀຊ෦ yoshihitoh
None
!3 ຊ͓͢Δ͜ͱ
!4 ΞδΣϯμ ɾ"84-BNCEB'VODUJPOͱ ɾΧελϜϥϯλΠϜͱ ɾ3VTUͱ ɾ-BNCEB3VTU ɾ·ͱΊ
!5 ຊηογϣϯͷରऀ
!6 ຊηογϣϯͷରऀ ɾ-BNCEB'VODUJPOΛͬͯΈ͍ͨ ɹɾ͚Ͳɺ͍͍ͨݴޠϥϯλΠϜ͕ະαϙʔτ ɾ3VTUॻ͍ͯΈ͍ͨ ɹɾ͚Ͳɺͪΐ͏ͲΑ͍ࡐ͕ͳ͍
!7 ΞδΣϯμ ɾ"84-BNCEB'VODUJPOͱ ɾΧελϜϥϯλΠϜͱ ɾ3VTUͱ ɾ-BNCEB3VTU ɾ·ͱΊ
!8 AWS Lambda Function
!9 AWS Lambda Function - ֓ཁ ɾΠϕϯτۦಈͰΞϓϦέʔγϣϯίʔυΛ࣮ߦ ɾϥϯλΠϜͱϋϯυϥʔΛΈ߹Θ࣮ͤͯݱ ɹɾϋϯυϥʔ ɹɹɾϏδωεϩδοΫ
ɹɾϥϯλΠϜ ɹɹɾΞϓϦέʔγϣϯͷ࣮ߦڥ
!10 AWS Lambda Function - ֓ཁ ɾΠϕϯτۦಈͰΞϓϦέʔγϣϯίʔυΛ࣮ߦ ɾϥϯλΠϜͱϋϯυϥʔΛΈ߹Θ࣮ͤͯݱ ɹɾϥϯλΠϜ ɹɹɾΞϓϦέʔγϣϯͷ࣮ߦڥ
ɹɾϋϯυϥʔ ɹɹɾϏδωεϩδοΫ -BNCEBͷ։ൃͱ͍͑ ϋϯυϥʔͷ࣮
!11 AWS Lambda Function - ֓ཁ ɾΠϕϯτۦಈͰΞϓϦέʔγϣϯίʔυΛ࣮ߦ ɾϥϯλΠϜͱϋϯυϥʔΛΈ߹Θ࣮ͤͯݱ ɹɾϋϯυϥʔ ɹɹɾϏδωεϩδοΫ
ɹɾϥϯλΠϜ ɹɹɾΞϓϦέʔγϣϯͷ࣮ߦڥ ຊηογϣϯͰ ͕ͬͪ͜ϝΠϯ
!12 ϥϯλΠϜʁ 'VODUJPO࡞࣌ʹ ϥϯλΠϜΛબ͢Δ
!13 ϥϯλΠϜҰཡ ༷ʑͳϥϯλΠϜ͕༻ҙ͞Ε͍ͯΔ ɾ/PEFKT (10.x/12.x) ɾ(P (1.x) ɾ1ZUIPO (2.7/3.6ʙ3.8) ɾ3VCZ
(2.5/2.7) ɾ+BWB (8/11) ɾ/&5 Core (2.1/3.1)
!14 ϥϯλΠϜԿΛ͢Δʁ ɾϋϯυϥʔ͕ಈ࡞͢ΔڥΛఏڙ͢Δ ɾछྨͷλεΫΛߦ͏ ɹɾॳظԽλεΫ ɹɹɾϥϯλΠϜىಈ࣌ʹճ͚ͩߦ͏ॲཧ ɹɾॲཧλεΫ ɹɹɾΠϕϯτ୯ҐͰߦ͏ॲཧ
!15 ϥϯλΠϜ ಉ͜͡ͱΛ͢Ε ಠࣗͷϥϯλΠϜΛ͑Δʂ
!16 Custom Runtime
!17 ΞδΣϯμ ɾ"84-BNCEB'VODUJPOͱ ɾΧελϜϥϯλΠϜͱ ɾ3VTUͱ ɾ-BNCEB3VTU ɾ·ͱΊ
!18 ΧελϜϥϯλΠϜͱ ɾಠࣗϥϯλΠϜͰ-BNCEBΛ࣮ߦ͢ΔΈ ɾϓϩάϥϛϯάݴޠͷ੍͔Βղ์ ɾ"84ύʔτφʔ͔Βఏڙ͞ΕͯΔ ɹɾ$ ɺ3VTU BXTMBCT ɹɾ&MJYJSɺ$PCPMɺ1)1ɺFUD
ύʔτφʔ
!19 ΧελϜϥϯλΠϜͷΈ ɾଞϥϯλΠϜͱಉͷ͜ͱΛ͢Δ ɹɾॳظԽλεΫ ɹɾॲཧλεΫ ɾϥϯλΠϜ"1*Ͱ࣮ݱ͢Δ
!20 ΧελϜϥϯλΠϜͷಈ࡞Πϝʔδ
!21 ΧελϜϥϯλΠϜͷಈ࡞Πϝʔδ ޭͨ͠߹ ˠϨεϙϯε௨ ࣦഊͨ͠߹ ˠΤϥʔ௨
!22 ΧελϜϥϯλΠϜͷಈ࡞Πϝʔδ ϥϯλΠϜ"1*Ͱ࣮ݱ ɾॳظԽΤϥʔ ɾ࣍ͷݺͼग़͠ ɾݺͼग़͠Ϩεϙϯε ɾݺͼग़͠Τϥʔ
!23 ϥϯλΠϜॳظԽλεΫ ɾઃఆऔಘ ɹɾϋϯυϥʔ໊ϥϯλΠϜ"1*ͷϗετͳͲ ɾؔͷॳظԽ ɹɾϋϯυϥʔͷಡΈࠐΈɺϦιʔεͷॳظԽͳͲ ɾΤϥʔ௨ ɹɾॳظԽʹࣦഊͨ͠߹ͷΤϥʔ༰Λ௨
!24 ॲཧλεΫ ɾΠϕϯτऔಘɾίϯςΩετ࡞ ɾϋϯυϥʔݺͼग़͠ ɾॲཧ݁Ռ௨ ޭɾΤϥʔ ɾτϨʔεϔομͷ ҙ
ɾΫϦʔϯΞοϓ ҙ
!25 ΧελϜϥϯλΠϜͷ࡞Γํ ɾϥϯλΠϜͱϋϯυϥʔΛύοέʔδʹಉࠝ ɾCPPUTUSBQͱ͍͏໊લͷ࣮ߦՄೳϑΝΠϧ ɹɾγΣϧεΫϦϓτ ɹɾ"NB[PO-JOVYͰಈ࡞͢ΔεΫϦϓτ ɹɾ"NB[PO-JOVY͚ͷ࣮ߦՄೳόΠφϦ
!26 ͳͥΧελϜϥϯλΠϜʁ ɾ͍͍ͨݴޠͰ-BNCEBΛಈ͔ͤΔ ɹɾੈքͷ-BNCEB͔Β ·ͱΊهࣄ ɾطଘͷࢿ࢈Λ༗ޮ׆༻͍ͨ͠ ɾಛఆͷϥΠϒϥϦΛར༻͍ͨ͠
!27 ͳͥΧελϜϥϯλΠϜʁ ɾ͍͍ͨݴޠͰ-BNCEBΛಈ͔ͤΔ ɹɾੈքͷ-BNCEB͔Β ·ͱΊهࣄ ɾطଘͷࢿ࢈Λ༗ޮ׆༻͍ͨ͠ ɾಛఆͷϥΠϒϥϦΛར༻͍ͨ͠
!28 ͳͥΧελϜϥϯλΠϜʁ ͖ͳݴޠΛ͍͍ͨʂ
!29 Rust
!30 ΞδΣϯμ ɾ"84-BNCEB'VODUJPOͱ ɾΧελϜϥϯλΠϜͱ ɾ3VTUͱ ɾ-BNCEB3VTU ɾ·ͱΊ
!31 Rustͱ ɾΦʔϓϯιʔεͷγεςϜϓϩάϥϛϯάݴޠ ɾ৽͠ΊͷݴޠͰɺʹϦϦʔε ɹɾ࠷৽൛ ݄࣌ ɾߴ͔ͭϝϞϦ҆શ ɾ෯͍Ͱ͑Δ
!32 Rustͱ ެࣜαΠτΑΓ ࣌ IUUQTXXXSVTUMBOHPSHKB
!33 Rustͷಛ ެࣜαΠτΑΓ ࣌ IUUQTXXXSVTUMBOHPSHKB
!34 Rustͷ༻్ ެࣜαΠτΑΓ ࣌ IUUQTXXXSVTUMBOHPSHKB
!35 Lambda͍͚Δʂ ΧελϜϥϯλΠϜͳΒ RustͰLambda FunctionΛ࣮Ͱ͖Δʂ
!36 AWSϒϩάΑΓ https://aws.amazon.com/blogs/opensource/rust-runtime- for-aws-lambda/
!37 ΞδΣϯμ ɾ"84-BNCEB'VODUJPOͱ ɾΧελϜϥϯλΠϜͱ ɾ3VTUͱ ɾ-BNCEB3VTU ɾ·ͱΊ
!38 RustͰॻ͘ϝϦοτ (ݸਓͷײͰ͢) ɾ҆શͳϓϩάϥϜΛॻ͖͍͢ ɹɾڧྗͳܕγεςϜ ɹɾϦιʔεཧͷΈ ɾखܰʹඇಉظॲཧΛॻ͚Δ BTZODBXBJU ɾॻָ͍͍ͯͯ͠
!39 Ͳ͏Δͷʁ ɾ"84ఏڙͷΧελϜϥϯλΠϜΛ͏ ɾBXTMBCTBXTMBNCEBSVTUSVOUJNF ɾ3VTUͰόΠφϦΫϨʔτΛ࣮͢Δ ɾ"NB[PO-JOVY͚ʹϏϧυ͢Δ
!40 Lambda & Rust ·ͣ)FMMP8PSME͔Βʂ
!41 αϯϓϧίʔυ (JU)VCͰެ։ͯ͠·͢ IUUQTHJUIVCDPNZPTIJIJUPISVTUMBNCEBFYBNQMF
!42 Lambda & RustͰHello World ϓϩδΣΫτΛ࡞Δ DBSHPOFX"11@/".&
!43 Lambda & RustͰHello World ґଘΫϨʔτ ϥΠϒϥϦ ΛՃ͢Δ $BSHPUPNM
!44 Lambda & RustͰHello World ґଘΫϨʔτ ϥΠϒϥϦ ΛՃ͢Δ $BSHPUPNM LambdaͷϥϯλΠϜػೳ
!45 Lambda & RustͰHello World ґଘΫϨʔτ ϥΠϒϥϦ ΛՃ͢Δ $BSHPUPNM γϦΞϥΠζ
!46 Lambda & RustͰHello World ґଘΫϨʔτ ϥΠϒϥϦ ΛՃ͢Δ $BSHPUPNM (ඇެࣜ)
AWS SDK
!47 Lambda & RustͰHello World ґଘΫϨʔτ ϥΠϒϥϦ ΛՃ͢Δ $BSHPUPNM ඇಉظϥϯλΠϜ
!48 Lambda & RustͰHello World ϓϩάϥϜΛॻ͘ TSDNBJOST
!49 ΠϕϯτͱϨεϙϯεͷߏମΛఆٛ͢Δ JSON→Πϕϯτ ʹσγϦΞϥΠζ ϨεϙϯεˠJSON ʹγϦΞϥΠζ
!50 Ϗϧυ͔ΒσϓϩΠ·ͰͷྲྀΕ ɾY@MJOVY͚ʹίϯύΠϧ ɾ࣮ߦՄೳόΠφϦͷϑΝΠϧ໊ΛCPPUTUSBQʹ ɾCPPUTUSBQΛ;*1ϑΝΠϧʹΞʔΧΠϒ͢Δ ɾΞοϓϩʔυ͢Δ
!51 Ϗϧυ͔ΒσϓϩΠ·ͰͷྲྀΕ ɾΞοϓϩʔυ͢Δ %PDLFSϏϧυ༻Πϝʔδ͋Γ TPGUQSPQTMBNCEBSVTU ɾY@MJOVY͚ʹίϯύΠϧ ɾ࣮ߦՄೳόΠφϦͷϑΝΠϧ໊ΛCPPUTUSBQʹ ɾCPPUTUSBQΛ;*1ϑΝΠϧʹΞʔΧΠϒ͢Δ
!52 ϏϧυˍΞʔΧΠϒ %PDLFSͰϏϧυ͢Δ
!53 ϏϧυˍΞʔΧΠϒ UBSHFUMBNCEBSFMFBTFʹϏϧυ݁Ռग़ྗ Ϗϧυ݁Ռͷ ;*1ϑΝΠϧ
!54 σϓϩΠ ɾΞοϓϩʔυҎ߱ଞͷϥϯλΠϜͱಉ͡ ɾϑϨʔϜϫʔΫΛ͏ ɹɾ4". ɹɾ$%, ɹɾ4FSWFSMFTT'SBNFXPSL ɾίϯιʔϧ͔Β࡞Δ
!55 σϓϩΠ ɾ'VODUJPOϦιʔεΛ࡞͢Δ ɾϥϯλΠϜQSPWJEFEʹ͢Δ ɹɾίϯιʔϧͰ࡞Δ߹$VTUPN3VOUJNF ɹɾ6TFEFGBVMU 1SPWJEFʜͲͪΒͰྑ͠ ɾ"84αʔϏεར༻࣌ݖݶ༩Εͣʹ
!56 σϓϩΠ
!57 ςετ࣮ߦͯ͠ΈΔ
!58 ςετ࣮ߦͯ͠ΈΔ
!59
!60 Real World Lambda ɾ-BNCEB͚ͩͰ݁͢Δέʔεগͳ͍ ɾ"84ͷαʔϏε֎෦"1*ͱ࿈ܞ͍ͨ͠ ɾෳͷ-BNCEB'VODUJPOΛ࡞Γ͍ͨ ɾFUDʜ
!61 Real World Lambda ɾ-BNCEB͚ͩͰ݁͢Δέʔεগͳ͍ ɾ"84ͷαʔϏε֎෦"1*ͱ࿈ܞ͍ͨ͠ ɾෳͷ-BNCEB'VODUJPOΛ࡞Γ͍ͨ ɾFUDʜ
!62 Lambda͚ͩͰ݁͢Δέʔεগͳ͍ ΦϒδΣΫτͷ σʔλΛಡΉ %#ΞΫηε ֎෦"1*
!63 Real World Lambda ɾ-BNCEB͚ͩͰ݁͢Δέʔεগͳ͍ ɾ"84ͷαʔϏε֎෦"1*ͱ࿈ܞ͍ͨ͠ ɾෳͷ-BNCEB'VODUJPOΛ࡞Γ͍ͨ ɾFUDʜ
!64 AWSͷαʔϏε֎෦APIͱ࿈ܞ͍ͨ͠ ɾϥΠϒϥϦ͑΄ͱΜͲͷ͜ͱ͕࣮ݱͰ͖Δ ɹɾSVTUVOPGGJDJBMBXFTPNFSVTU ɾ ඇެ͚ࣜͩͲ "844%,ͷ3VTPUP ɹɾSVTPUPSVTPUP ɾ)551ΫϥΠΞϯτͷSFRXFTUͳͲ ɹɾTFBONPOTUBSSFRXFTU
!65 3VTPUPͰ4ʹΞΫηε͢Δ߹
!66 S3ͷσʔλΛಡΈࠐΉ߹ ΠϕϯτͰॲཧରͷΦϒδΣΫτΛࢦఆ
!67 S3ͷσʔλΛಡΈࠐΉ߹ 4ΫϥΠΞϯτΛ४උ ߏମΛڬΉͱมߋ͘͢͠ͳΔ
!68 S3ͷσʔλΛಡΈࠐΉ߹ ΦϒδΣΫτऔಘॲཧ ඇಉظ
!69 S3ͷσʔλΛಡΈࠐΉ߹ ΦϒδΣΫτऔಘॲཧ ඇಉظ
!70 S3ͷσʔλΛಡΈࠐΉ߹ σʔλಡΈࠐΈॲཧ ඇಉظ
!71 S3ͷσʔλΛಡΈࠐΉ߹ Ұ࿈ͷॲཧΛͭͳ͗͜Ή ඇಉظ
!72 S3ͷσʔλΛಡΈࠐΉ߹ ϋϯυϥʔ͔ΒҰ࿈ͷॲཧΛ࣮ߦ͢Δ
!73 S3ͷσʔλΛಡΈࠐΉ߹ ςετ࣮ߦ͢Δ
!74 S3ͷσʔλΛಡΈࠐΉ߹ 4ʹΞΫηεͰ͖ͨ
!75 S3ͷσʔλΛಡΈࠐΉ߹ 4ʹΞΫηεͰ͖ͨʜ͚Ͳ͗͢ͳ͍ʁ
!76 ύϑΥʔϚϯεΛ֬ೝ͢Δ ͍ͣΕNT͑
!77 S3ͷσʔλΛಡΈࠐΉ߹ Πϕϯτॲཧͷͨͼʹੜ͍ͯ͠ΔͨΊ
!78 ύϑΥʔϚϯεΛվળ͢Δ ࣄલʹ༻ҙͨ͠ͷΛར༻
!79 ύϑΥʔϚϯεΛվળ͢Δ ϥϯλΠϜॳظԽ࣌ʹඞཁͳͷΛ࡞Δ
!80 ύϑΥʔϚϯεΛվળ͢Δ ॳճɾճҎ߱ͱʹվળ
!81 Real World Lambda ɾ-BNCEB͚ͩͰ݁͢Δέʔεগͳ͍ ɾ"84ͷαʔϏε֎෦"1*ͱ࿈ܞ͍ͨ͠ ɾෳͷ-BNCEB'VODUJPOΛ࡞Γ͍ͨ ɾFUDʜ
!82 ෳͷLambda FunctionΛ࡞Γ͍ͨ ɾૢ࡞ݖݶΛ͍ͨ͠ ɾϩάΛ͍ͨ͠ ɾϝϞϦׂΓͯΛݸผௐ͍ͨ͠
!83 ෳͷLambda FunctionΛ࡞Γ͍ͨ ɾϥΠϒϥϦ ෳόΠφϦߏʹ͢Δ ɹɾϥΠϒϥϦΫϨʔτʹڞ௨ॲཧΛॻ͘ ɹɾϋϯυϥ୯ҐͰόΠφϦΛ࡞Δ ɾଞʹΓํ͋Γͦ͏ ɹɾγΣϧεΫϦϓτͰαϒίϚϯυݺͼ͚
!84 ෳͷLambda FunctionΛ࡞Γ͍ͨ ɾଞʹΓํ͋Γͦ͏ ɹɾγΣϧεΫϦϓτͰαϒίϚϯυݺͼ͚ ɾϥΠϒϥϦ ෳόΠφϦߏʹ͢Δ ɹɾϥΠϒϥϦΫϨʔτʹڞ௨ॲཧΛॻ͘ ɹɾϋϯυϥ୯ҐͰόΠφϦΛ࡞Δ
!85 ϥΠϒϥϦ + ෳόΠφϦߏʹ͢Δ ɾϥΠϒϥϦΫϨʔτʹ͢Δ ɹɾTSDMJCSTΛՃ ɹɾϞδϡʔϧͷެ։ઃఆͳͲ ɾ4ͷૢ࡞ΛϞδϡʔϧԽ͢Δ ɹɾTSDTSTΛՃ ɹɾ4ͷૢ࡞Λू
!86 ϥΠϒϥϦ + ෳόΠφϦߏʹ͢Δ TSDNBJOST͔ΒϥΠϒϥϦؔΛར༻͢Δ
!87 ϥΠϒϥϦ + ෳόΠφϦߏʹ͢Δ ɾطଘͷϋϯυϥʔΛผͷϑΥϧμʹҠಈ ɹɾTSDNBJOST͔Β ɹɾTSDCJOIBOEMFTPCKFDUSTʹҠಈ ɾ৽نϋϯυϥʔΛಉϑΥϧμʹՃ͢Δ ɹɾTSDCJOEFMFUFTPCKFDUST
!88 ϥΠϒϥϦ + ෳόΠφϦߏʹ͢Δ $BSHPUPNMʹ<<CJO>>ઃఆΛՃ
!89 ϥΠϒϥϦ + ෳόΠφϦߏʹ͢Δ มߋޙͷϑΥϧμߏ
!90 ϥΠϒϥϦ + ෳόΠφϦߏʹ͢Δ όΠφϦ͝ͱʹ ;*1ϑΝΠϧ࡞
!91 ଞʹߟ͑Δ͖͜ͱ͕ͨ͘͞Μʂ
!92 ଞʹߟ͑Δ͖͜ͱ ɾ"1*ͷϦτϥΠ੍ޚ ɾϩάه ɾόϦσʔγϣϯ ɾ93BZ ɾFUDʜ
!93 ͲΜͲΜࢼͯ͠ݟΛ૿ͦ͏
!94 ΞδΣϯμ ɾ"84-BNCEB'VODUJPOͱ ɾΧελϜϥϯλΠϜͱ ɾ3VTUͱ ɾ-BNCEB3VTU ɾ·ͱΊ
!95 ·ͱΊ ɾ-BNCEBͷϥϯλΠϜͱͦͷछྨ ɾ3VTUͷಛ ɾ3VTUͰ-BNCEBΛ࣮͢Δํ๏
!96 LambdaͷϥϯλΠϜͱͦͷछྨ ɾϥϯλΠϜͱϋϯυϥʔ ɾඪ४ఏڙ͞Ε͍ͯΔ֤ݴޠϥϯλΠϜ ɹɾଟ͘ͷݴޠϥϯλΠϜ͕ఏڙ͞ΕͯΔ ɾΧελϜϥϯλΠϜ ɹɾݱঢ়ະαϙʔτͷݴޠରԠՄೳʹʂ
!97 Rustͷಛ ɾ҆શͳϓϩάϥϜΛॻ͖͍͢ ɾॻָ͍͍ͯͯ͠ʂ ɹɾ4UBDL0WFSGMPX4VSWFZͰ ɹɹ࿈ଓ.PTU-PWFE-BOHVBHF
!98 RustͰLambdaΛ࣮͢Δํ๏ ɾΧελϜϥϯλΠϜͷ࡞Γํ ɾ"84αʔϏε֎෦"1*ͱͷ࿈ܞ ɹɾύϑΥʔϚϯεʹ͍ͭͯͷཹҙࣄ߲͋Γ ɾෳϋϯυϥʔͷ࡞Γํ
!99 3VTUͰ-BNCEBΛॻ͍ͯΈ͍ͨʂ ͱࢥͬͯΒ͑Δͱخ͍͠Ͱ͢☺
!100 ͝ࢹௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
None