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

Transcript

13 slides
  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

More Decks by Hong Minhee (洪 民憙)

Other Decks in Programming