Still no documentation and not anywhere close to done, but my library is open source at

My goal is to provide a well-tested, flexible library that handles the complicated parts of ActivityPub (JSON-LD, persistence, addressing, etc.) in a way that can be plugged into an existing PHP codebase with no hassle. That'll help me refactor , and will also make it easy for other developers to make developers to make plugins for Joomla, Drupal, etc.

@jdormit One of my goals for the comming years, not sure whether it could be 2019 or not, depends on how quickly I catch onto C#, but I want to make a library for .NET for ActivityPub first, because it's simpler, and then Zot. second. Seems that all of the other frameworks are covered. Fact that .NET folks are left out's been driving me nuts for a while now.

For sure, make it happen! The more platforms we get on the network the better it gets.

@jdormit Is it even possible, though? I think if it were, then wouldn't someone have done it already? DNN community sorta laughed at me in an odd way when I mentioned it to them. Acted like they didn't have a clue what I was talking about. I mean, the new standards of ActivityPub, Webmention, and so on can't be that new, can they? Then again, there's that whole misconception that anything written for the .NET Framework isn't open source because the underlying OS is not open source. That definition is too narrow for me.

I don't see why it wouldn't be possible, it's just a specification. I don't know too much about The .NET ecosystem though so I can't comment on what it would look like. The API I'm aiming for with my library is a "bring-your-own-database" kind of thing - you configure the DB details and the library gives you a nice API to create, send, and receive Activities.

@jdormit I'm liking that. Could be nice for SQL server supported applications, too. Often wondered, as well whether Pterotype works on ProjectNami, the version of Wordpress that supports native SQL Server rather than MariaDB. (it will if it doesn't use database calls, but instead relies only on the WP API.) And I know that this is a complete nonsequetur, but I'm also from Boston. I'm hoping that I can run into you at a meetup sometime; I always attend those where I can.

It probably would, but I haven't tested it out. The Cambridgeport reference in your username gave you away 😆 What sort of meetups do you go to? The only one I regularly is the Clojure Group meetup at Akamai in Kendall, but I would like to go to more

@jdormit I'm absolutely everywhere. another favorite of mine is Powershell, even though I haven't been to one of those meetings in a while. And, who knows, I might join you one of these days. That sounds like a rather interesting language. I've heard of it, though never studied it.

@cambridgeport90 @jdormit If y'all know of other generic/extensible ActivityPub libraries in static language libraries please let me know. I am putting together a talk and want to be sure I have an accurate picture of the landscape, and I am not sure how up to date mayel's list of decentralized AP-based apps is.

@cj @jdormit If I find any more, I'll definitely do that. I know that Django supports some of the features, not sure about activityPub off hand, though.

Sounds interesting, will the talk be available online?


@jdormit If so, I'm going to definitely want to listen, and then share with some people in our community who need to learn.

@jdormit @cambridgeport90 If It gets accepted (I don't know if it will) by the committee at FOSDEM, then yes it would be recorded.

As far as I know, most ActivityPub apps are rolling their own implementation. Why static languages?

After I get to a stable place, I'm going to start on a Clojure ActivityPub library to support another project I've been thinking about.


@jdormit @cambridgeport90 Because "generic" or "extensible" plus "static typing" is a very challenging challenging for implementing .

There's less considerations when an app rolls its own specific implementation regardless of language typing.

When implementing a "generic" or "extensible" library, dynamic typing has less challenges.

@cj @jdormit Oh boy. Looks like I have a bit of a difficult future ahead of me, doesn't it?

@cambridgeport90 Yeah, but I don't mean to discourage. Instead, once you do tackle it, you can take solace in the fact that you succeeded despite picking the road less travelled.

@cj In other words, it's not impossible, just hard … Well, this will be an experiment then to see whether or not I can successfully use the C# dynamic language extensions for something like this. Or … might think about IronPython? Thoughts?

@cambridgeport90 I know there's some Python implementations of ActivityPub that you may be able to use as a reference (see I am not familiar with the additional constraints of the .NET DLR environment, so you'd be pushing the boundaries of human knowledge there. :)

Sorry I'm not of more help.

@cj Is it possible though via static languages? I've never heard of it, but then again, not everyone considers .NET conducive to the open source community, either.

@cambridgeport90 Yes its possible to implement ActivityPub in a static language.

And I'm of the mindset of "pick the language you want to use, critics-be-damned". If C# isn't known for its open source then at least you'd be a part of the change.

@cj It's what I aim for ... Especially in light of the changing mindset with .Net Core.

@jdormit Will it also support the #LitePub variant of #ActivityPub that one of the #Pleroma devs is creating?


Probably not - is LitePub supposed to be compatible with ActivityPub? I want to support the standard that other people will implement

@jdormit Yes, I believe LP is a slimmed down profile of AP. You'd probably have to ask Kaniini to be sure.

@lnxw37d2 Well, as long as it's compatible than apps built with my library will be able to federate with LitePub, I guess. I'm going to stick with the W3C spec on my end.

@jdormit @lnxw37d2 sticking to the w3c spec means not federating with anyone, though.
@jdormit @lnxw37d2 w3c spec doesn't include any signing mechanism or webfinger, both of which are needed to have any widespread federation

Yeah fair enough. My library will handle signing and verification but since webfinger has to implemented at the server level that'll have to be handled by callers

@jdormit which of the two non-mandated signing mechanisms will you do :) (httpsig, json-jd sigs)

@lain @jdormit @lnxw37d2 W3C spec doesn't solve the discovery problem, which is what webfinger solves. Sticking to the ActivityPub spec means you could federate with anyone, but no one knows how to find you.

@lain @cj @lnxw37d2 @jdormit I think it won't accept anything from servers and they'll fail with a validation thing if there's no webfinger, that's what I had when WF was broken

@vaartis @lain @jdormit @lnxw37d2 Can also confirm when testing with go-fed, Mastodon requires webfinger.

@Jeremy @Katherine M. Moss @cj 🇺🇸🇨🇭 @Suzanne tired her work all done @Mayel @🅕🅘🅝🅐🅛 🅱🅞🅢🅢

Litepub started as a long series of most unintelligible rants about killer drones and if you weren't following the Pleroma dev who ranted it, you missed out. (I wasn't, and by the time I was, he was ranting about other stuff but blamed me for sending the killer drones because I thought it would be nice to let people know when you updated your profile photo instead of just updating the photo for everybody on the network every day). Then a spec was started and it's mostly unintelligible rants about killer drones with links to non-existent additional pages. I'm going to give it a miss.

@mike Between the context of this message (Jeremy & Pterotype) and the content of this message (kaniini & LitePub), I am extremely confused.

@cj 🇺🇸🇨🇭 the question was raised if a general purpose ActivityPub library should support ActivityPub or litepub or both. My comment referred to my own attempts to research the differences and technical specifications in order to answer that very question.

@mike Ah I see. Whatever app you're using to reply to ActivityPub messages is not handling the inReplyTo well, so all your replies seem to be to the top level message. Sorry for the confusion.

@cj 🇺🇸🇨🇭 Osada is single threaded. The backend has support for multi-threading but needs a developer to work through the UX and theming before it can be turned on. I'm too busy with more important stuff atm.

@mike Ah I see, I understand. I hope Osada users don't get too confused if other fediverse folks have odd reactions due to this, because I had to suppress my "WTF" knee jerk reaction (since I wasn't involved in the LitePub branch of the thread).

Sign in to participate in the conversation
Mastodon for Tech Folks

This Mastodon instance is for people interested in technology. Discussions aren't limited to technology, because tech folks shouldn't be limited to technology either! We adhere to an adapted version of the TootCat Code of Conduct and follow the Toot Café list of blocked instances. Ash is the admin and is supported by Fuzzface, Brian!, and Daniel Glus as moderators. Hosting costs are largely covered by our generous supporters on Patreon – thanks for all the help!