Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • 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

Darkscribes Community

  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 0 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.
  • hugh@ausglam.spaceH This user is from outside of this forum
    hugh@ausglam.spaceH This user is from outside of this forum
    [email protected]
    wrote last edited by
    #1

    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.

    skyfaller@jawns.clubS julian@community.nodebb.orgJ chrastecky@phpc.socialC rwg@aoir.socialR cascode@mkiii.amplifie.redC 8 Replies Last reply
    0
    • hugh@ausglam.spaceH [email protected]

      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.

      skyfaller@jawns.clubS This user is from outside of this forum
      skyfaller@jawns.clubS This user is from outside of this forum
      [email protected]
      wrote last edited by
      #2

      @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."

      https://codeberg.org/superseriousbusiness/gotosocial/issues/3846#issuecomment-4018586

      hugh@ausglam.spaceH smallcircles@social.coopS unexpectedteapot@social.linux.pizzaU 3 Replies Last reply
      0
      • skyfaller@jawns.clubS [email protected]

        @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."

        https://codeberg.org/superseriousbusiness/gotosocial/issues/3846#issuecomment-4018586

        hugh@ausglam.spaceH This user is from outside of this forum
        hugh@ausglam.spaceH This user is from outside of this forum
        [email protected]
        wrote last edited by
        #3

        @skyfaller Thanks. I guess I’m looking for more detail on what is meant by “underdefined” and “relies on the client to do almost everything” because my reading of the spec is that it relies on the server to do almost everything! I assume I’m missing something, but everything I’ve read about it is very vague.

        skyfaller@jawns.clubS 1 Reply Last reply
        0
        • skyfaller@jawns.clubS [email protected]

          @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."

          https://codeberg.org/superseriousbusiness/gotosocial/issues/3846#issuecomment-4018586

          smallcircles@social.coopS This user is from outside of this forum
          smallcircles@social.coopS This user is from outside of this forum
          [email protected]
          wrote last edited by
          #4

          @skyfaller @hugh

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

          https://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.

          https://github.com/andstatus/andstatus/issues/499

          strypey@mastodon.nzoss.nzS 1 Reply Last reply
          0
          • hugh@ausglam.spaceH [email protected]

            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.

            julian@community.nodebb.orgJ This user is from outside of this forum
            julian@community.nodebb.orgJ This user is from outside of this forum
            [email protected]
            wrote last edited by
            #5

            @[email protected] investigation into the use of C2S for cross-instance posting is one of our goals for 2025 with support from @[email protected]

            But yes, there's most likely a reason why it hasn't been adopted widely...

            1 Reply Last reply
            0
            • hugh@ausglam.spaceH [email protected]

              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.

              chrastecky@phpc.socialC This user is from outside of this forum
              chrastecky@phpc.socialC This user is from outside of this forum
              [email protected]
              wrote last edited by
              #6

              @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.

              smallcircles@social.coopS 1 Reply Last reply
              0
              • hugh@ausglam.spaceH [email protected]

                @skyfaller Thanks. I guess I’m looking for more detail on what is meant by “underdefined” and “relies on the client to do almost everything” because my reading of the spec is that it relies on the server to do almost everything! I assume I’m missing something, but everything I’ve read about it is very vague.

                skyfaller@jawns.clubS This user is from outside of this forum
                skyfaller@jawns.clubS This user is from outside of this forum
                [email protected]
                wrote last edited by
                #7

                @hugh What bugs me about "underdefined" is it seems to me someone should just go define it.

                hugh@ausglam.spaceH 1 Reply Last reply
                0
                • skyfaller@jawns.clubS [email protected]

                  @hugh What bugs me about "underdefined" is it seems to me someone should just go define it.

                  hugh@ausglam.spaceH This user is from outside of this forum
                  hugh@ausglam.spaceH This user is from outside of this forum
                  [email protected]
                  wrote last edited by
                  #8

                  @skyfaller Well one person’s “under-defined” is another person’s “flexible and simple”. If people get their heads out of micro-blogging it becomes clearer why a more rigid definition becomes limiting, IMO.

                  trwnh@mastodon.socialT 1 Reply Last reply
                  0
                  • hugh@ausglam.spaceH [email protected]

                    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.

                    rwg@aoir.socialR This user is from outside of this forum
                    rwg@aoir.socialR This user is from outside of this forum
                    [email protected]
                    wrote last edited by
                    #9

                    @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.

                    csarven@w3c.socialC 1 Reply Last reply
                    0
                    • nlnetlabs@fosstodon.orgN This user is from outside of this forum
                      nlnetlabs@fosstodon.orgN This user is from outside of this forum
                      [email protected]
                      wrote last edited by
                      #10

                      @julian @hugh We will forward your credits to @nlnet, which supports #opensourcesoftware. Although the name is similar, we are a different foundation that develops open source software.

                      julian@community.nodebb.orgJ 1 Reply Last reply
                      0
                      • nlnetlabs@fosstodon.orgN [email protected]

                        @julian @hugh We will forward your credits to @nlnet, which supports #opensourcesoftware. Although the name is similar, we are a different foundation that develops open source software.

                        julian@community.nodebb.orgJ This user is from outside of this forum
                        julian@community.nodebb.orgJ This user is from outside of this forum
                        [email protected]
                        wrote last edited by
                        #11

                        @[email protected] oh! Oops 😅 unfortunate name collision.

                        1 Reply Last reply
                        0
                        • hugh@ausglam.spaceH [email protected]

                          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.

                          cascode@mkiii.amplifie.redC This user is from outside of this forum
                          cascode@mkiii.amplifie.redC This user is from outside of this forum
                          [email protected]
                          wrote last edited by
                          #12

                          @[email protected] some mastodon dev discussion re: c2s implementation, a while back:
                          https://github.com/mastodon/mastodon/issues/10520

                          "The ActivityPub C2S spec is incredibly barebones. No notifications (as separate from home feed -- it's all mixed together in "inbox"), no search, no autocomplete, no domain blocking, no muting (as opposed to blocking), etc etc. You'd end up defining so much custom vocabulary and endpoints that you might as well just use the Mastodon REST API."
                          - gargron
                          "The activitypub c2s api is cool but it comes from a wildly different perspective, and it would be a lot of work to write clients that support that, with no real clear benefit to the mastodon user experience. Furthermore, it would be incredibly hard for the mastodon code base as it exists today to support a good implementation of C2S and the mastodon API side-by-side—practically, it would mean basically re-writing the mastodon server from the ground-up. And even once you've done all of that work, there aren't any existing C2S clients out there that provide a comparable user experience to the mastodon front-end."
                          - nightpool

                          cascode@mkiii.amplifie.redC 1 Reply Last reply
                          0
                          • cascode@mkiii.amplifie.redC [email protected]

                            @[email protected] some mastodon dev discussion re: c2s implementation, a while back:
                            https://github.com/mastodon/mastodon/issues/10520

                            "The ActivityPub C2S spec is incredibly barebones. No notifications (as separate from home feed -- it's all mixed together in "inbox"), no search, no autocomplete, no domain blocking, no muting (as opposed to blocking), etc etc. You'd end up defining so much custom vocabulary and endpoints that you might as well just use the Mastodon REST API."
                            - gargron
                            "The activitypub c2s api is cool but it comes from a wildly different perspective, and it would be a lot of work to write clients that support that, with no real clear benefit to the mastodon user experience. Furthermore, it would be incredibly hard for the mastodon code base as it exists today to support a good implementation of C2S and the mastodon API side-by-side—practically, it would mean basically re-writing the mastodon server from the ground-up. And even once you've done all of that work, there aren't any existing C2S clients out there that provide a comparable user experience to the mastodon front-end."
                            - nightpool

                            cascode@mkiii.amplifie.redC This user is from outside of this forum
                            cascode@mkiii.amplifie.redC This user is from outside of this forum
                            [email protected]
                            wrote last edited by
                            #13

                            @[email protected] (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)

                            steve@social.technoetic.comS 1 Reply Last reply
                            0
                            • chrastecky@phpc.socialC [email protected]

                              @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.

                              smallcircles@social.coopS This user is from outside of this forum
                              smallcircles@social.coopS This user is from outside of this forum
                              [email protected]
                              wrote last edited by
                              #14

                              @chrastecky @hugh

                              Thanks for writing this article! I tooted about it:

                              https://social.coop/@smallcircles/114419670153108301

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

                              https://socialhub.activitypub.rocks/t/exposing-edit-history-via-activitystreams/2930

                              https://socialhub.activitypub.rocks/t/update-note-quirk/4545/14

                              https://socialhub.activitypub.rocks/t/distinguish-between-posts-and-direct-messages/2283

                              1 Reply Last reply
                              0
                              • cascode@mkiii.amplifie.redC [email protected]

                                @[email protected] (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)

                                steve@social.technoetic.comS This user is from outside of this forum
                                steve@social.technoetic.comS This user is from outside of this forum
                                [email protected]
                                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 [email protected]

                                  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
                                  [email protected]
                                  wrote last edited by
                                  #16

                                  @[email protected] 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 [email protected]

                                    @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.

                                    csarven@w3c.socialC This user is from outside of this forum
                                    csarven@w3c.socialC This user is from outside of this forum
                                    [email protected]
                                    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
                                    • smallcircles@social.coopS [email protected]

                                      @skyfaller @hugh

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

                                      https://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.

                                      https://github.com/andstatus/andstatus/issues/499

                                      strypey@mastodon.nzoss.nzS This user is from outside of this forum
                                      strypey@mastodon.nzoss.nzS This user is from outside of this forum
                                      [email protected]
                                      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;

                                      https://pleroma.social/announcements/2020/05/10/pleroma-security-release-2-0-4/

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

                                      https://libreserver.org/epicyon/

                                      Was any of this mentioned in the SH thread?

                                      #ActivityPub #APC2S

                                      @skyfaller @hugh
                                      @bob

                                      naturzukunft@mastodon.socialN smallcircles@social.coopS 2 Replies Last reply
                                      0
                                      • strypey@mastodon.nzoss.nzS [email protected]

                                        @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;

                                        https://pleroma.social/announcements/2020/05/10/pleroma-security-release-2-0-4/

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

                                        https://libreserver.org/epicyon/

                                        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
                                        [email protected]
                                        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 [email protected]

                                          @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;

                                          https://pleroma.social/announcements/2020/05/10/pleroma-security-release-2-0-4/

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

                                          https://libreserver.org/epicyon/

                                          Was any of this mentioned in the SH thread?

                                          #ActivityPub #APC2S

                                          @skyfaller @hugh
                                          @bob

                                          smallcircles@social.coopS This user is from outside of this forum
                                          smallcircles@social.coopS This user is from outside of this forum
                                          [email protected]
                                          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
                                          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
                                          • Users
                                          • Groups