$30 off During Our Annual Pro Sale. View Details »

Rust何もわからない…… ver4 juniper使ってGraphQLやってみた

y.hige
October 06, 2022

Rust何もわからない…… ver4 juniper使ってGraphQLやってみた

Rust何もわからない ver4登壇用資料

juniperでGraphQLサーバを2日で作ってみた話。
本体は公開できないので、似たような構成の環境を別で用意した。
https://github.com/savacan/rust_ws_practice

y.hige

October 06, 2022
Tweet

Other Decks in Programming

Transcript

  1. +VOJQFS࢖ͬͯ(SBQI2-΍ͬͯΈͨ

    3VTUɺԿ΋Θ͔Βͳ͍ʜWPM
    IJHF@ZZ !LJBO@Z@NVE

    View Slide

  2. higeです。
    • ຊ໊͸ࢁதͰ͢
    • 202012~ estie
    • ݩʑ͸ϑϩϯτΤϯυྖҬ
    • Rust͸ࠓ೥͔Β࢖͍࢝Ί·ͨ͠
    • ϏΞϙϯͳΔύʔςΟήʔϜͷݩ೔ຊ୅ද
    1

    View Slide


  3. (SBQI2-΍ͬͯΈΔ͜ͱʹͳͬͨ࿩
    ΍ͬͯΈͨ
    ͭ·͖ͮϙΠϯτ
    ·ͱΊ
    ͜͏͍͏࿩͠·͢Α

    View Slide

  4. (SBQI2-΍ͬͯΈΔ͜ͱʹͳͬͨ࿩

    View Slide


  5. αʔϏε։ൃͯͯͭ͠Β͍͜ͱ͕ʜʜ
    ݱঢ়͸3FBDUY3VTU 3&45
    ͷߏ੒͕ͩɺϢʔεέʔε͝ͱʹϑϩϯτ
    ͰϦιʔεͷ݁߹੒ܗΛ͓͜ͳ͍ͬͯΔՕॴ͕ෳ਺͋ͬͯͪΐͬͱͭΒ
    ͍
    ݟͨ໨ͷͪΐͬͱͨ͠มߋͷͨΊʹόοΫΤϯυ·Ͱมߋ͠ͳ͚Ε͹ͳ
    Βͳ͍͜ͱ͕ଟʑ͋Δ
    ϑΟʔϧυ୯ҐͰࢀরͷݖݶΛઃఆ͍͕࣮ͨ͠૷͕ຖճඞཁ
    ʜFUD

    View Slide


  6. ͦ͏ͩ(SBQI2-࢖ͬͯΈΑ͏ʂ
    (SBQI2-ͩͱϦιʔεͷͭͳ͕ΓΛදݱͰ͖Δ͸ͣʂ
    ϑϩϯτΤϯυͰ৭ʑ݁߹͢Δඞཁ͕ͳ͘ͳΓͦ͏
    όοΫΤϯυͷมߋͳ͠Ͱ6*ΛࢼߦࡨޡͰ͖ͦ͏

    View Slide


  7. ࣾ಺ϋοΧιϯ
    ͱ͸ݴ͑ɺ৽نػೳ։ൃ͕ܧଓ͍ͯ͠ΔҎ্ͦΜͳʹ·ͱ·ͬͨ࣌ؒͱΕ
    ͳ͍ͳʜʜͱࢥ͍ͬͯΔ໼ઌɺ̎೔ؒͷࣾ಺ϋοΧιϯ͕։࠵͞ΕΔ͜ͱ
    ʹͳΓ·ͨ͠
    LFOLPPPP͞Μ ̎೔͋Ε͹Ͱ͖ΔͰ͠ΐ

    View Slide

  8. ΍ͬͯΈͨ

    View Slide


  9. ࢖ͬͨ΋ͷ
    طଘͷBQQͷ։ൃ؀ڥ BDUJYXFC TRMY NZTRM

    +VOJQFS
    EBUBMPBEFS O໰୊Λղܾ͢ΔͨΊ

    HSBQIJRM (SBQI2-αʔόΛϒϥ΢β͔Βୟͨ͘Ί

    HSBQIRMDPEFHFO TDIFNB͔Β54ͷܕੜ੒

    View Slide


  10. BDUJYXFCͷTFSWJDFʹ௥Ճ

    View Slide


  11. (2-༻ͷߏ଄ମͷఆٛ
    ϑΟʔϧυ͝ͱʹɺͲͷΑ͏ͳ஋
    Λฦ͔͢Λఆٛɾऔಘ͢Δ෦෼ɻ
    ϑΟʔϧυ͝ͱʹࡉ͔ͳؔ਺ʹ෼
    ͔Ε͍ͯΔͷͰɺ͜ͷ୯ҐͰͷݖ
    ݶͷ੍ޚ͕༰қʹՄೳʹͳΔɻ

    View Slide


  12. CBUDIFSͷ࡞੒
    #BUDIFS͸(SBQI2-ར༻࣌ʹසൃ
    ͢Δ/໰୊Λղܾ͢ΔͨΊʹར༻ɻ
    ࠨͷྫͰݴ͏ͱɺRVFSZ͕͜ΕҎ্
    VTFSΛ-PBE͠ͳ͍ɺͱͳͬͨλΠ
    ϛϯά·ͰσʔλͷऔಘΛ஗Ԇ͢Δ
    Α͏ͳΠϝʔδͰ͢ɻ

    View Slide


  13. RVFSZͷఆٛ
    ࣮ࡍʹ֎ʹ࿐ग़͢ΔRVFSZΛఆٛ͢
    Δ෦෼Ͱ͢ɻNVUBUJPO΋ಉ༷ʹఆ
    ٛ͠·͢ɻ

    View Slide


  14. ͜Μͳײ͡Ͱಈ͖·͢
    (SBQIJRM ը໘ڞ༗

    View Slide

  15. ͭ·͖ͮϙΠϯτ

    View Slide


  16. %FGBVMUͰJ࢖͑ͳ͍໰୊
    +VOJQFSͰ͸ϏϧτΠϯεΧϥʔͱͯ͠J͕ͳ͍ͷͰɺJE౳ΛࣗલͰJʹ
    ม׵͢Δඞཁ͕͋ͬͨͨΊɺҎԼͷΑ͏ͳNBDSPΛॻ͍ͯͪΐͬͱָΛ͠
    ·ͨ͠ɻ

    View Slide


  17. TRMYͷ"DRVJSFΛෳ਺࢖͍ͬͯΔͱϥΠϑλΠϜͷΤϥʔͰམͪΔ
    "DRVJSFΛཁ੥͍ͯ͠Δؔ਺ͷதͰ"DRVJSFΛཁ੥͢Δؔ਺Λ࢖͏ͱϥΠϑ
    λΠϜͷΤϥʔ͕ى͖ͨɻ
    "DRVJSFΛશͯ.Z4RM$POOFDUJPOʹॻ͖׵͑ͨɻ

    View Slide

  18. ·ͱΊ

    View Slide


  19. ࠓճͷϋοΧιϯͰݕূͰ͖ͨࢀরܥͷ՝୊ʹ͍ͭͯ͸(SBQI2-Λ࢖͏͜ͱͰ͋Δఔ౓ղফ͞Εͦ͏
    ϑϩϯτͰϦιʔεΛ݁߹͢Δͷ͕ਏ͍ʜʜ
    ϑϩϯτͰ͸RVFSZΛॻ͍ͯ޷͖ͳܗͰऔͬͯ͜ΕΔΑ͏ʹͳΔ
    ͪΐͬͱͨ͠6*ͷมߋͰόοΫΤϯυ·Ͱมߋ͕ඞཁʹͳΔ
    TDIFNBΛมߋ͠ͳ͚Ε͹ͳΒͳ͍৔߹Ҏ֎͸RVFSZมߋͰऔΕΔ
    ϑΟʔϧυ୯ҐͰͷࡉ͔ͳݖݶ੍ޚ͕΍Γ͍ͨ
    (2-0CKFDUͷఆٛͰϑΟʔϧυ͝ͱʹ੍ޚՄೳ

    View Slide


  20. ࠓޙ(SBQI2-Λ࢖͏͔ʁ
    ࢖͍͍ͨʂ
    ͕ɺKVOJQFSΛ࢖͏͔ʁ
    ࠓճ͸ϋοΧιϯͱ͍͏͜ͱ΋͋ΓɺKVOJQFSΛ࢖ͬͨ͜ͱʹͦ͜·Ͱେ
    ͖ͳҙຯ͸ͳ͔ͬͨɻ
    +VOJQFS͸"QPMMP'FEFSBUJPOΛαϙʔτ͍ͯ͠ͳ͍Β͍͠
    BTZODHSBQIRM͸૊ΈࠐΈͰEBUBMPBEFSͷΑ͏ͳ࢓૊ΈΛαϙʔτͯ͠
    ͍Δ
    ϑΟʔϧυ୯ҐͰͷݖݶઃఆʹ͓͍ͯɺBTZODHSBQIRMʹ͸'JFME(VBSE
    ͱ͍͍͏࢓૊Έ͕༻ҙ͞Ε͍ͯΔɻ
    ݕ౼ͷ݁ՌBTZODHSBQIRMͰ͍͘͜ͱʹ

    View Slide


  21. ࠓޙͷ՝୊ͱల๬
    ࠓճݕূͰ͖ͨͷ͸ࢀরܥ͕ϝΠϯͰɺߋ৽ܥ͸ཁݕূ
    (SBQI2-Λ͕ͬͭΓӡ༻͍ͯ͘͠஌ݟ͕଍Γͳ͍ʜʜ

    View Slide