Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fedify — ActivityPub 서버 프레임워크

Fedify — ActivityPub 서버 프레임워크

Open Contribution Jam 2024에서 Fedify 프로젝트에 대한 소개

Hong Minhee (洪 民憙)

November 22, 2024
Tweet

More Decks by Hong Minhee (洪 民憙)

Other Decks in Programming

Transcript

  1. ࣗ࣍ ޷٣য੄ അ੤ ઺ঔ૘઺ഋ ೒ۖಬ੄ ೠ҅ • ױੌ ӝস੄ Ѿ੿ী

    ੄ઓ • Twitter → X۽੄ ߸҃ • Facebook੄ ׏झ ରױ (ഐ઱·நա׮) • ࢲ࠺झ р ࣗా ࠛоמ • Facebook ࢎਊ੗ח X੄ ѱदޛী ؆Ӗਸ ׳ ࣻ হ਺ • Instagram ࢎਊ੗ח YouTube ز৔࢚ী ߈਽ਸ թӡ ࣻ হ਺ • ц੘झ۞਍ ࢲ࠺झ ઺ױ • Google+੄ ઙܐ (2019֙) • Vine੄ ઙܐ (2016֙)
  2. ಕ٣ߡझ(fediverse)ۆ? ఎ઺ঔചػ ࣗ࣍ ޷٣য੄ ࣁ҅ • Fediverse = federated +

    universe • ೠҴীࢲח “ো೤਋઱”ۄҊب ࠛܿ • ੉ݫੌ୊ۢ ੘زೞח ࣗ࣍ ޷٣য • @[email protected] ↔ @[email protected] • ־ҳա ੗न੄ ࢲߡܳ ਍৔ оמ • ݃਺ী ٘ח ࢲߡܳ ࢶఖ೧ оੑ • ׮ܲ ࢲߡ੄ ࢎਊ੗ٜҗ ੗ਬ܂ѱ ࣗా
  3. ಕ٣ߡझ੄ അ੤ ׮নೠ ࢲ࠺झٜ੉ ೞա۽ োѾ • Mastodon • о੢

    ੋӝ ੓ח ݃੉௼۽࠶۽Ӓ (ಕ٣ߡझ౸ X) • 800݅ ࢎਊ੗ • Meta੄ Threads • Instagramҗ োز • ӝఋ ࢲ࠺झٜ • Pixelfed (ࢎ૓, ಕ٣ߡझ౸ Instagram) • PeerTube (ز৔࢚, ಕ٣ߡझ౸ YouTube) • Lemmy (ನۢ, ಕ٣ߡझ౸ Reddit)
  4. ಕ٣ߡझ੄ അ੤ ׮নೠ ࢲ࠺झٜ੉ ೞա۽ োѾ • Mastodon • о੢

    ੋӝ ੓ח ݃੉௼۽࠶۽Ӓ (ಕ٣ߡझ౸ X) • 800݅ ࢎਊ੗ • Meta੄ Threads • Instagramҗ োز • ӝఋ ࢲ࠺झٜ • Pixelfed (ࢎ૓, ಕ٣ߡझ౸ Instagram) • PeerTube (ز৔࢚, ಕ٣ߡझ౸ YouTube) • Lemmy (ನۢ, ಕ٣ߡझ౸ Reddit)
  5. ActivityPub ࣗѐ ಕ٣ߡझܳ оמೞѱ ೞח ಴ળ • W3C ಴ળ ೐۽ష௒

    (2018֙ थੋ) • Social Web Working Group੄ Ѿҗޛ • JSON-LD ӝ߈ ഛ੢ оמೠ যൃ { "@context": "https: / / www.w3.org/ns/activitystreams", "type": "Note", "content": "Hello, World!", "to": "https: / / www.w3.org/ns/activitystreams#Public" }
  6. ActivityPub੄ ӝࣿ੸ ౠ૚ ঘఠ৬ ঘ౭࠺౭ • ݽٚ ࢚ഐ੘ਊ੉ ঘ౭࠺౭۽ ಴അؽ

    • Ӗॳӝ → Create(Note) • ౹۽ → Follow • જইਃ → Like • HTTP۽ ాन • п ঘఠח Ҋਬೠ ࣻनೣ(inbox)ਸ о૗ • ࢲݺػ HTTP POST ਃ୒ਵ۽ ੹׳
  7. ActivityPub ࢲߡ ҳഅ੄ য۰਑ ৵ Fedifyо ೙ਃೠо • ࠂ੟ೠ ೐۽ష௒

    • WebFinger, HTTP Signatures, JSON-LD… • ࠁউ ҳഅ੄ য۰਑ • ࢲݺ Ѩૐ, ః ҙܻ, ӂೠ ഛੋ… • ࢚ഐ਍ਊࢿ • Mastodon ١җ੄ ഐജࢿ • ҳഅ୓߹ ର੉
  8. Fedify ࣗѐ TypeScript/JavaScript۽ ݅٘ח ಕ٣ߡझ federation.setActorDispatcher("/users/{identifier}", async (ctx, identifier) =

    > { return new Person({ id: ctx.getActorUri(identifier), name: "John Doe", preferredUsername: identifier, inbox: ctx.getInboxUri(identifier), }); }); • Node.js, Deno, Bun ૑ਗ • Express, Fresh, Hono ١ ೐ۨ੐ਕ௼৬ ా೤
  9. Fedify੄ ੢੼ উ੹ೞҊ Ѩૐػ ҳഅ • ఋੑ উ੹ࢿ • TypeScript੄

    ъ۱ೠ ఋੑ दझమ • ۠ఋ੐ য়ܨ ߑ૑ • ࠁউ ӝמ ղ੢ • HTTP Signatures, Linked Data Signatures, Object Integrity Proofs… • ః ҙܻ ੗زച • ࢚ഐ਍ਊࢿ Ѩૐ • Mastodon, Misskey, Threads…
  10. য়ט ೣԋ ӝৈ೧ࠁӝ ୊਺੉ۄب ҡଳইਃ • ੉۠ Ѫٜਸ ೧ࠅ ࣻ

    ੓णפ׮ • ޙࢲ ѐࢶೞӝ • ৘ઁ ௏٘ ੘ࢿೞӝ • పझ౟ ୶оೞӝ • ߡӒ ࣻ੿ೞӝ
  11. য়ט ೣԋ ӝৈ೧ࠁӝ ୊਺੉ۄب ҡଳইਃ • ೣԋ ب৬٘݀פ׮ • ѐߊ

    ജ҃ ࢸ੿ • ੉ग Ҋܰӝ • ௏٘ ੘ࢿ • ಽ ܻ௮झ౟ ઁ୹
  12. ݛ਺݈ ೣԋ ݅٘ח ఎ઺ঔചػ ࣗ࣍ ޷٣য • GitHub: https://github.com/dahlia/fedify •

    ޙࢲ: https://fedify.dev/ • Discord: https://bit.ly/fedify-discord