APx is finally available on crates.io / docs.rs
-
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 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.
silverpill@mitra.social nice job! Congratulations on the release
now you must maintain it for free forever. -
silverpill@mitra.social nice job! Congratulations on the release
now you must maintain it for free forever.@julian I will

-
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.
@silverpill this looks fantastic! but yea, a permissive license is almost necessary for adoption within the Rust community
if it's primarily for you, though, that's completely fine ;D
-
@silverpill this looks fantastic! but yea, a permissive license is almost necessary for adoption within the Rust community
if it's primarily for you, though, that's completely fine ;D
@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
-
@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
@silverpill you're right binaries are popular for copyleft
...but libraries aren't due to ecosystem-wide static linking
it's easy to fall into that trap, so most devs just don't use copyleft libs
-
@silverpill you're right binaries are popular for copyleft
...but libraries aren't due to ecosystem-wide static linking
it's easy to fall into that trap, so most devs just don't use copyleft libs
@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.
-
@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.
@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. -
@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.@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.