Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • 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

NodeBB

  1. Home
  2. General Discussion
  3. APx is finally available on crates.io / docs.rs

APx is finally available on crates.io / docs.rs

Scheduled Pinned Locked Moved General Discussion
activitypubrustapx
8 Posts 3 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.
  • silverpill@mitra.socialS This user is from outside of this forum
    silverpill@mitra.socialS This user is from outside of this forum
    silverpill@mitra.social
    wrote on last edited by
    #1

    APx is finally available on crates.io / docs.rs

    https://docs.rs/apx_sdk/latest/apx_sdk/

    This is an ActivityPub library used internally in Mitra and in other my projects.

    Unlike some other ActivityPub libraries, this library is low-level. It doesn't restrict what databases or frameworks could be used, and doesn't care about object types or properties. There are only URIs, keys, signatures, JSON documents and HTTP requests.
    It also contains primitives for building nomadic applications (FEP-ef61).

    The license is AGPL-3, but I might consider changing it to a more permissive one.

    #apx #activitypub #rust

    julian@community.nodebb.orgJ 1 Reply Last reply
    0
    • silverpill@mitra.socialS silverpill@mitra.social

      APx is finally available on crates.io / docs.rs

      https://docs.rs/apx_sdk/latest/apx_sdk/

      This is an ActivityPub library used internally in Mitra and in other my projects.

      Unlike some other ActivityPub libraries, this library is low-level. It doesn't restrict what databases or frameworks could be used, and doesn't care about object types or properties. There are only URIs, keys, signatures, JSON documents and HTTP requests.
      It also contains primitives for building nomadic applications (FEP-ef61).

      The license is AGPL-3, but I might consider changing it to a more permissive one.

      #apx #activitypub #rust

      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 on last edited by
      #2

      @silverpill@mitra.social nice job! Congratulations on the release 🙂 now you must maintain it for free forever.

      silverpill@mitra.socialS 1 Reply Last reply
      0
      • julian@community.nodebb.orgJ julian@community.nodebb.org

        @silverpill@mitra.social nice job! Congratulations on the release 🙂 now you must maintain it for free forever.

        silverpill@mitra.socialS This user is from outside of this forum
        silverpill@mitra.socialS This user is from outside of this forum
        silverpill@mitra.social
        wrote on last edited by
        #3

        @julian I will 😆

        1 Reply Last reply
        0
        • silverpill@mitra.socialS This user is from outside of this forum
          silverpill@mitra.socialS This user is from outside of this forum
          silverpill@mitra.social
          wrote on last edited by
          #4

          @barrettsclub It is not only for me, but I like free software and GPL is quite popular among fedi devs. I can remember 8 server implementations written in Rust and apparently all of them are (A)GPL:

          Lemmy, lotide, buzzrelay, hatsu, AodeRelay, shops, Enigmatick, Ibis

          1 Reply Last reply
          0
          • silverpill@mitra.socialS This user is from outside of this forum
            silverpill@mitra.socialS This user is from outside of this forum
            silverpill@mitra.social
            wrote on last edited by
            #5

            @barrettsclub What do you mean by ecosystem-wide static linking?

            As far as I know, if the binary is copyleft, than you don't need to worry about copyleft dependencies.

            phnt@fluffytail.orgP 1 Reply Last reply
            0
            • silverpill@mitra.socialS silverpill@mitra.social

              @barrettsclub What do you mean by ecosystem-wide static linking?

              As far as I know, if the binary is copyleft, than you don't need to worry about copyleft dependencies.

              phnt@fluffytail.orgP This user is from outside of this forum
              phnt@fluffytail.orgP This user is from outside of this forum
              phnt@fluffytail.org
              wrote on last edited by
              #6
              @silverpill @barrettsclub If you library is under GPL and the library is statically linked, then also that final binary must be GPL in order to not violate the libraries license. That's why libraries are usually under LGPL which allows statically linking. AGPL is mostly GPL with an added clause which forces users (administrators of a service) of a software accessible over a network to publish the source code also accessible over the network, or point to repositories of the software, if it is unmodified.

              Examples:
              Patching Mastodon to remove the URL of the instance from the UA and not publishing that modified source is a violation of the license.
              Running patched Pleroma and pointing to the mainline repositories is also a violation of the license.
              Statically linking an (A)GPL library to a program that isn't GPL-compatible is also a violation of the libraries license. Dynamically linking the same library is not.
              phnt@fluffytail.orgP 1 Reply Last reply
              0
              • phnt@fluffytail.orgP phnt@fluffytail.org
                @silverpill @barrettsclub If you library is under GPL and the library is statically linked, then also that final binary must be GPL in order to not violate the libraries license. That's why libraries are usually under LGPL which allows statically linking. AGPL is mostly GPL with an added clause which forces users (administrators of a service) of a software accessible over a network to publish the source code also accessible over the network, or point to repositories of the software, if it is unmodified.

                Examples:
                Patching Mastodon to remove the URL of the instance from the UA and not publishing that modified source is a violation of the license.
                Running patched Pleroma and pointing to the mainline repositories is also a violation of the license.
                Statically linking an (A)GPL library to a program that isn't GPL-compatible is also a violation of the libraries license. Dynamically linking the same library is not.
                phnt@fluffytail.orgP This user is from outside of this forum
                phnt@fluffytail.orgP This user is from outside of this forum
                phnt@fluffytail.org
                wrote on last edited by
                #7
                @silverpill @barrettsclub To add to the AGPL and GPL differences: If Pleroma/Mastodon was GPL (not AGPL) and you were running patched versions, you could do the old "come to my office to get the source code" trick. That's basically the thing that AGPL prohibits.
                1 Reply Last reply
                0
                • silverpill@mitra.socialS This user is from outside of this forum
                  silverpill@mitra.socialS This user is from outside of this forum
                  silverpill@mitra.social
                  wrote on last edited by
                  #8

                  @scott Wider distribution and supporting free software are both my priorities.
                  Today, most Rust servers are (A)GPL licensed. I expect that fedi developers will continue to favor copyleft licenses, so I released the library under AGPLv3.

                  If I meet someone who wants to use this library in a MIT/Apache licensed project, we can talk about changing the license. Otherwise, AGPLv3 seems to be a good fit.

                  cc @phnt @barrettsclub

                  1 Reply Last reply
                  0

                  Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                  Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                  With your input, this post could be even better 💗

                  Register Login
                  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