Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
We Distribute
  1. Home
  2. Uncategorized
  3. As far as I understand, most (all?) fediverse #ActivityPub software does not use the Client-to-server protocol from the specs (https://www.w3.org/TR/activitypub/#client-to-server-interactions) but rather use custom APIs instead.

As far as I understand, most (all?) fediverse #ActivityPub software does not use the Client-to-server protocol from the specs (https://www.w3.org/TR/activitypub/#client-to-server-interactions) but rather use custom APIs instead.

Scheduled Pinned Locked Moved Uncategorized
activitypub
62 Posts 19 Posters 5 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ? Guest

    @hugh ActivityPub is very badly defined, I wrote an article about it (about s2s, but all of that applies to c2s as well): https://chrastecky.dev/technology/activity-pub-the-good-the-bad-and-the-ugly

    Additionally, it's a very chatty api with a lot of http requests, that's fine for s2s, but for c2s it makes the app much slower.

    ? Offline
    ? Offline
    Guest
    wrote last edited by
    #14

    @chrastecky @hugh

    Thanks for writing this article! I tooted about it:

    small circle 🕊 in calmness (@smallcircles@social.coop)

    #ActivityPub "The Good, the Bad and the Ugly" is a good article by @dominik@chrastecky.dev https://chrastecky.dev/technology/activity-pub-the-good-the-bad-and-the-ugly The two mentioned examples in "The Bad" are long-time issues that were also discussed at #SocialHub. I just responded to one of them on the forum.. The #Mastodon Update(Note) quirk. https://socialhub.activitypub.rocks/t/update-note-quirk/4545/14 The other one is around Direct Messages which are a hack (a Note with special sauce). #LitePub specifies ChatMessage object type here, which is the intended way to extend the protocol. #FEP

    favicon

    social.coop (social.coop)

    And it was good opportunity to follow-up on two #SocialHub threads relating to your examples in "The Bad":

    Link Preview Image
    Exposing edit history via Activitystreams

    Per expose edit history in ActivityPub representation · Issue #23292 · mastodon/mastodon · GitHub @Johann150 raises a feature request for being able to view earlier versions of an activity or object before an Update was…

    favicon

    SocialHub (socialhub.activitypub.rocks)

    Link Preview Image
    `Update(Note)` quirk

    Today I tagged the v4.0.0-beta.2 release purely to fix a single issue — Update(Note) federation. It turns out that just sending the Update(Note) activity was not enough, the underlying object needed to also have the upd…

    favicon

    SocialHub (socialhub.activitypub.rocks)

    Link Preview Image
    Distinguish between posts and direct messages

    Hi, ActivityPub seems to be mainly focused on posts, but some applications also make it possible to send direct messages, which I also want to make possible in my own application. Unfortunately posts and direct message…

    favicon

    SocialHub (socialhub.activitypub.rocks)

    1 Reply Last reply
    0
    • ? Guest

      @hugh@ausglam.space (no comment from me as to the accuracy of those perspectives, just figured worth sharing as stated reasoning from one project's devs at the time)

      ? Offline
      ? Offline
      Guest
      wrote last edited by
      #15

      @cascode @hugh gargron's perspectives are still accurate and gives a good (partial) list of the many underdefined aspects of C2S. Related discussion at SocialHub: https://socialhub.activitypub.rocks/t/nextgen-activitypub-social-api/4733/4

      1 Reply Last reply
      0
      • hugh@ausglam.spaceH hugh@ausglam.space

        As far as I understand, most (all?) fediverse #ActivityPub software does not use the Client-to-server protocol from the specs (https://www.w3.org/TR/activitypub/#client-to-server-interactions) but rather use custom APIs instead.

        Any fediverse devs able to explain why? Is there a technical reason/limitation, or is it more about other considerations?

        I'm looking for information here rather than speculation, thanks.

        deadsuperhero@social.wedistribute.orgD This user is from outside of this forum
        deadsuperhero@social.wedistribute.orgD This user is from outside of this forum
        deadsuperhero@social.wedistribute.org
        wrote last edited by
        #16

        @hugh@ausglam.space A few do, Pleroma historically supported it. Not sure if they still do.

        Part of the problem is that it's kind of unwieldy to work with. C2S apparently requires developers to handle all logic on the client side, rather than the server. I've also heard that there's vagueness in the spec on how to do certain things.

        The Mastodon API ended up being a lot easier to work with, and overtook the client ecosystem. It actually ended up becoming so popular that most Fediverse clients and platforms have adopted it. It's also one of the factors as to why so many Fediverse platforms are full-stack servers, rather than clients.

        I personally still think that C2S has potential, it just requires capable hands to implement.

        1 Reply Last reply
        0
        • rwg@aoir.socialR rwg@aoir.social

          @hugh In addition to the concerns expressed here, I argue in my book that Mastodon's status as the single largest ActivityPub implementer back in 2017 is a factor -- after all, Mastodon had an API at that point. People making clients chose to make them compatible with Mastodon's API instead of redoing everything for the then-new C2S spec.

          ? Offline
          ? Offline
          Guest
          wrote last edited by
          #17

          @rwg @hugh Pragmatically speaking, that's true because people needed to build/show something. But there are gaps in the specs such that broad interop is technically not possible as it stands ( https://w3c.social/@csarven/114178482096355457 ). I'm not saying this to dismiss any work (especially one I was involved in since the days of Laconica/StatusNet). I'm coming from the perspective of how different classes of products can interoperate, regardless of the umbrella or spec "camp" they're part of on the web platform.

          1 Reply Last reply
          0
          • ? Guest

            @skyfaller @hugh

            Also #SocialHub #ActivityPub developer forum has a bunch of C2S-related topic. You can use the forum search facility.

            Link Preview Image
            SocialHub

            Where ActivityPub developers coordinate their efforts to make the Fediverse a great space for cooperation

            favicon

            SocialHub (socialhub.activitypub.rocks)

            A very detailed investigation on what is needed client-side can be found in the #AndStatus project. It was never completed AFAIK as there were among others no server implementations to test against.

            Link Preview Image
            Basic implementation of "client to server" ActivityPub protocol · Issue #499 · andstatus/andstatus

            Note on current state (as of 2020-05-24) Pleroma Minimal "client to server" #ActivityPub implementation is available. It is tested at https://queer.hacktivis.me/AndStatus (that site has the latest Pleroma builds... some requests work at ...

            favicon

            GitHub (github.com)

            strypey@mastodon.nzoss.nzS This user is from outside of this forum
            strypey@mastodon.nzoss.nzS This user is from outside of this forum
            strypey@mastodon.nzoss.nz
            wrote last edited by
            #18

            @smallcircles
            > what is needed client-side can be found in the AndStatus project ... there were among others no server implementations to test against

            Seems like Pleroma had it working before mid-2020;

            Link Preview Image
            Pleroma security release: 2.0.4

            favicon

            (pleroma.social)

            The Epicyon server has support for AP C2S too, so that could also be used to test apps trying to implement it;

            Link Preview Image
            Epicyon ActivityPub server

            ActivityPub server written in Python, HTML and CSS, and suitable for self-hosting on single board computers

            favicon

            (libreserver.org)

            Was any of this mentioned in the SH thread?

            #ActivityPub #APC2S

            @skyfaller @hugh
            @bob

            naturzukunft@mastodon.socialN ? 2 Replies Last reply
            0
            • strypey@mastodon.nzoss.nzS strypey@mastodon.nzoss.nz

              @smallcircles
              > what is needed client-side can be found in the AndStatus project ... there were among others no server implementations to test against

              Seems like Pleroma had it working before mid-2020;

              Link Preview Image
              Pleroma security release: 2.0.4

              favicon

              (pleroma.social)

              The Epicyon server has support for AP C2S too, so that could also be used to test apps trying to implement it;

              Link Preview Image
              Epicyon ActivityPub server

              ActivityPub server written in Python, HTML and CSS, and suitable for self-hosting on single board computers

              favicon

              (libreserver.org)

              Was any of this mentioned in the SH thread?

              #ActivityPub #APC2S

              @skyfaller @hugh
              @bob

              naturzukunft@mastodon.socialN This user is from outside of this forum
              naturzukunft@mastodon.socialN This user is from outside of this forum
              naturzukunft@mastodon.social
              wrote last edited by
              #19

              @strypey @smallcircles @skyfaller @hugh @bob https://rdf-pub.org is providing c2s. I started Testung with #andstatus but there where open questions regarding oauth if i remember right.

              strypey@mastodon.nzoss.nzS 1 Reply Last reply
              0
              • strypey@mastodon.nzoss.nzS strypey@mastodon.nzoss.nz

                @smallcircles
                > what is needed client-side can be found in the AndStatus project ... there were among others no server implementations to test against

                Seems like Pleroma had it working before mid-2020;

                Link Preview Image
                Pleroma security release: 2.0.4

                favicon

                (pleroma.social)

                The Epicyon server has support for AP C2S too, so that could also be used to test apps trying to implement it;

                Link Preview Image
                Epicyon ActivityPub server

                ActivityPub server written in Python, HTML and CSS, and suitable for self-hosting on single board computers

                favicon

                (libreserver.org)

                Was any of this mentioned in the SH thread?

                #ActivityPub #APC2S

                @skyfaller @hugh
                @bob

                ? Offline
                ? Offline
                Guest
                wrote last edited by
                #20

                @strypey @skyfaller @hugh @bob

                I did not mention a #SocialHub thread. There are multiple discussions where various aspects were discussed, that might still be useful. The search facility is best way to find them.

                As for AndStatus the github issue lists their step-by-step progress in investigating what was needed, and what the challenges were. One of them was unavailibility of appropriate server back-ends to test against, mentioned *at the time* as challenge.

                Would ❤️ more #ActivityPub C2S dev.

                hugh@ausglam.spaceH strypey@mastodon.nzoss.nzS 2 Replies Last reply
                0
                • ? Guest

                  @strypey @skyfaller @hugh @bob

                  I did not mention a #SocialHub thread. There are multiple discussions where various aspects were discussed, that might still be useful. The search facility is best way to find them.

                  As for AndStatus the github issue lists their step-by-step progress in investigating what was needed, and what the challenges were. One of them was unavailibility of appropriate server back-ends to test against, mentioned *at the time* as challenge.

                  Would ❤️ more #ActivityPub C2S dev.

                  hugh@ausglam.spaceH This user is from outside of this forum
                  hugh@ausglam.spaceH This user is from outside of this forum
                  hugh@ausglam.space
                  wrote last edited by
                  #21

                  @smallcircles @strypey @skyfaller @bob My original question came from the POV of maintaining a, uh, server/client project and wanting to understand why projects aren’t providing server-side interfaces for clients to talk to using the C2S standard. It’s unsurprising there aren’t client projects if there’s nothing to talk to.

                  But the widely varying perspectives I’ve received are interesting. I was thinking more about pushing data to the server, many of the perceived problems seem to be more concerned with receiving data from the server.

                  ? 1 Reply Last reply
                  0
                  • hugh@ausglam.spaceH hugh@ausglam.space

                    @smallcircles @strypey @skyfaller @bob My original question came from the POV of maintaining a, uh, server/client project and wanting to understand why projects aren’t providing server-side interfaces for clients to talk to using the C2S standard. It’s unsurprising there aren’t client projects if there’s nothing to talk to.

                    But the widely varying perspectives I’ve received are interesting. I was thinking more about pushing data to the server, many of the perceived problems seem to be more concerned with receiving data from the server.

                    ? Offline
                    ? Offline
                    Guest
                    wrote last edited by
                    #22

                    @hugh @strypey @skyfaller @bob

                    There's renewed interest in C2S and it makes sense wrt current tech trends (local-first, p2p). Can be very useful if you kept a log of your adventures and observations to stimulate others. Would be great to have fresh discussions on SocialHub (where various categories are also federated via the Discourse AP plugin).

                    julian@community.nodebb.orgJ 1 Reply Last reply
                    0
                    • ? Guest

                      @strypey @skyfaller @hugh @bob

                      I did not mention a #SocialHub thread. There are multiple discussions where various aspects were discussed, that might still be useful. The search facility is best way to find them.

                      As for AndStatus the github issue lists their step-by-step progress in investigating what was needed, and what the challenges were. One of them was unavailibility of appropriate server back-ends to test against, mentioned *at the time* as challenge.

                      Would ❤️ more #ActivityPub C2S dev.

                      strypey@mastodon.nzoss.nzS This user is from outside of this forum
                      strypey@mastodon.nzoss.nzS This user is from outside of this forum
                      strypey@mastodon.nzoss.nz
                      wrote last edited by
                      #23

                      @smallcircles
                      > I did not mention a #SocialHub thread

                      True. My mistake : )

                      > Would ❤️ more #ActivityPub C2S dev

                      Am I right in thinking SocialCG have been looking at improving standardisation on that front?

                      @skyfaller @hugh @bob

                      ? 1 Reply Last reply
                      0
                      • strypey@mastodon.nzoss.nzS strypey@mastodon.nzoss.nz

                        @smallcircles
                        > I did not mention a #SocialHub thread

                        True. My mistake : )

                        > Would ❤️ more #ActivityPub C2S dev

                        Am I right in thinking SocialCG have been looking at improving standardisation on that front?

                        @skyfaller @hugh @bob

                        ? Offline
                        ? Offline
                        Guest
                        wrote last edited by
                        #24

                        @strypey @skyfaller @hugh @bob

                        > SocialCG

                        Certainly. And SocialHub with the FEP process. And countless other parties where people give their utmost to improve things. Very valiant efforts.

                        However there are 2 realities on fedi. One the near stalled (for 6 years!) open standards evolution. And the other where people implement new stuff that introduces protocol decay and tech debt. This increases 'whack-a-mole driven development' that's counter to and detrimental for broad interoperability.

                        1 Reply Last reply
                        0
                        • naturzukunft@mastodon.socialN naturzukunft@mastodon.social

                          @strypey @smallcircles @skyfaller @hugh @bob https://rdf-pub.org is providing c2s. I started Testung with #andstatus but there where open questions regarding oauth if i remember right.

                          strypey@mastodon.nzoss.nzS This user is from outside of this forum
                          strypey@mastodon.nzoss.nzS This user is from outside of this forum
                          strypey@mastodon.nzoss.nz
                          wrote last edited by
                          #25

                          @naturzukunft
                          > rdf-pub.org is providing c2s

                          Awesome, so that's at least 3 server packages to test clients against. Pleroma, Epicyon, and rdf-pub.org.

                          #ActivityPub #C2S

                          @smallcircles @skyfaller @hugh @bob

                          ? julian@community.nodebb.orgJ 2 Replies Last reply
                          0
                          • ? Guest

                            @hugh According to one dev for GoToSocial:

                            "Implementing the C2S API is, I'm afraid, really out of the question, as it's totally underdefined, relies on the client to do almost everything, and would be an absolute nightmare project for us. That's a non-starter."

                            Link Preview Image
                            [feature] Dedicated GoToSocial client

                            gotosocial - Fast, fun, small ActivityPub server.

                            favicon

                            Codeberg.org (codeberg.org)

                            ? Offline
                            ? Offline
                            Guest
                            wrote last edited by
                            #26

                            @skyfaller @hugh relying on the client IS the point. It gives people sovereignty over their Fedi presence, and leaves the processing and other server things for the server.

                            1 Reply Last reply
                            0
                            • strypey@mastodon.nzoss.nzS strypey@mastodon.nzoss.nz

                              @naturzukunft
                              > rdf-pub.org is providing c2s

                              Awesome, so that's at least 3 server packages to test clients against. Pleroma, Epicyon, and rdf-pub.org.

                              #ActivityPub #C2S

                              @smallcircles @skyfaller @hugh @bob

                              ? Offline
                              ? Offline
                              Guest
                              wrote last edited by
                              #27

                              @strypey@mastodon.nzoss.nz @naturzukunft @smallcircles @skyfaller @hugh @bob There are other servers that implement C2S support (ActivityPods, Vocata, onepage.pub, ...). Lack of servers implementing C2S is not the problem. See the many other issues described in this thread for examples of why one can't built an *interoperable* AP C2S client with features a typical user would expect.

                              ? 1 Reply Last reply
                              0
                              • ? Guest

                                @hugh @strypey @skyfaller @bob

                                There's renewed interest in C2S and it makes sense wrt current tech trends (local-first, p2p). Can be very useful if you kept a log of your adventures and observations to stimulate others. Would be great to have fresh discussions on SocialHub (where various categories are also federated via the Discourse AP plugin).

                                julian@community.nodebb.orgJ This user is from outside of this forum
                                julian@community.nodebb.orgJ This user is from outside of this forum
                                julian@community.nodebb.org
                                wrote last edited by
                                #28

                                @smallcircles@social.coop said in As far as I understand, most (all?) fediverse #ActivityPub software does not use the Client-to-server protocol from the specs (https://www.w3.org/TR/activitypub/#client-to-server-interactions) but rather use custom APIs instead.:
                                > Would be great to have fresh discussions on SocialHub (where various categories are also federated via the Discourse AP plugin).

                                Why? This discussion is already on fedi, so posting it to SocialHub to get it on fedi is just a roundabout way to do the same thing...

                                1 Reply Last reply
                                0
                                • strypey@mastodon.nzoss.nzS strypey@mastodon.nzoss.nz

                                  @naturzukunft
                                  > rdf-pub.org is providing c2s

                                  Awesome, so that's at least 3 server packages to test clients against. Pleroma, Epicyon, and rdf-pub.org.

                                  #ActivityPub #C2S

                                  @smallcircles @skyfaller @hugh @bob

                                  julian@community.nodebb.orgJ This user is from outside of this forum
                                  julian@community.nodebb.orgJ This user is from outside of this forum
                                  julian@community.nodebb.org
                                  wrote last edited by
                                  #29

                                  @strypey@mastodon.nzoss.nz fwiw I'm thinking that C2S might be applicable in an S2S-like setting where a user "logs in" to instance B using instance A's credentials, and B can do limited actions as the user on A. Essentially A would act as the server, B is the "client".

                                  1 Reply Last reply
                                  0
                                  • hugh@ausglam.spaceH hugh@ausglam.space

                                    As far as I understand, most (all?) fediverse #ActivityPub software does not use the Client-to-server protocol from the specs (https://www.w3.org/TR/activitypub/#client-to-server-interactions) but rather use custom APIs instead.

                                    Any fediverse devs able to explain why? Is there a technical reason/limitation, or is it more about other considerations?

                                    I'm looking for information here rather than speculation, thanks.

                                    evan@cosocial.caE This user is from outside of this forum
                                    evan@cosocial.caE This user is from outside of this forum
                                    evan@cosocial.ca
                                    wrote last edited by
                                    #30

                                    @hugh Mastodon already had an API when they adopted the ActivityPub protocol, and they did not want to use the ActivityPub API.

                                    I think they made the mistake of thinking that a standard API had to replace their app-specific API, rather than being complimentary.

                                    This is too bad; ActivityPub was designed to make clients innovative and interesting, and let servers concentrate on performance and reliability.

                                    I think as we get more ActivityPub API clients, servers will start supporting the API.

                                    evan@cosocial.caE 1 Reply Last reply
                                    0
                                    • evan@cosocial.caE evan@cosocial.ca

                                      @hugh Mastodon already had an API when they adopted the ActivityPub protocol, and they did not want to use the ActivityPub API.

                                      I think they made the mistake of thinking that a standard API had to replace their app-specific API, rather than being complimentary.

                                      This is too bad; ActivityPub was designed to make clients innovative and interesting, and let servers concentrate on performance and reliability.

                                      I think as we get more ActivityPub API clients, servers will start supporting the API.

                                      evan@cosocial.caE This user is from outside of this forum
                                      evan@cosocial.caE This user is from outside of this forum
                                      evan@cosocial.ca
                                      wrote last edited by
                                      #31

                                      @hugh I should also say that my book for O'Reilly Media has really good coverage of the ActivityPub API.

                                      Link Preview Image
                                      ActivityPub book

                                      In September 2023, I started work on a book about ActivityPub for O'Reilly Media. As of September 2024, the book is now available! Ebook The book is available from several different ebook vendors in different formats. O'Reilly Learning Platform Amazon Apple Books ebooks.com Kobo Print The book is not yet available in print format. O'Reilly…

                                      favicon

                                      Evan Prodromou's Blog (evanp.me)

                                      1 Reply Last reply
                                      0
                                      • hugh@ausglam.spaceH hugh@ausglam.space

                                        As far as I understand, most (all?) fediverse #ActivityPub software does not use the Client-to-server protocol from the specs (https://www.w3.org/TR/activitypub/#client-to-server-interactions) but rather use custom APIs instead.

                                        Any fediverse devs able to explain why? Is there a technical reason/limitation, or is it more about other considerations?

                                        I'm looking for information here rather than speculation, thanks.

                                        ? Offline
                                        ? Offline
                                        Guest
                                        wrote last edited by
                                        #32

                                        @hugh@ausglam.space it's because clients can't make any assumptions about ActivityPub data using the C2S model. They have to perform full client side parsing and linking, then figure out some way to display this graph structure of data they've been given. The fact of the matter is that ActivityPubs design is overly broad, and no client could account for this. So, instances implement an API offering a simple, watered down format, plus the benefit of having stability even if the software moves to another federation protocol down the line.

                                        There's also the matter that almost all ActivityPub implementations do not store posts in their database as JSON-LD, instead they unmarshal the data from it and store it in a concise format. Reconstructing it for the purposes of C2S would be inefficient and clunky.

                                        ? 1 Reply Last reply
                                        0
                                        • ? Offline
                                          ? Offline
                                          Guest
                                          wrote last edited by
                                          #33

                                          @julian imho..

                                          Pros and cons of decentralization + current state of fedi as a microblogging dominant thing.

                                          We're on a fragmentiverse,where community waters down, what you send today is lost in history tomorrow. There is no search, no archive.

                                          We are on a good path but the kind of organization we need to mature social web open standards and enabling technologies is not well supported on fedi.

                                          Barrier to sign up to a single forum removed, easier access, but dispersal of the community efforts.

                                          ? 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          Powered by NodeBB Contributors
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups