User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
polyproto A refreshingly simple, decentralised, federated protocol. No more losing friends, followers or messages if your old homeserver sunsets. Feel free to migrate to another homeserver at any time, even if your old homeserver has shut down ages ago.

🏳️‍⚧️ Trans rights are human rights. Be gay, do crime!

Posting here:
-ava: @star
Core Specification https://polyproto.org/docs/protocols/core?source=Fedi
Webbed Site https://polyproto.org?source=Fedi
Community Forum https://polyphony.zulipchat.com
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
1mo
A very large refactor was just merged into the polyproto Rust SDK crate! Work on this commenced on Jan. 31st and includes over 40 commits, which were squashed down to 10 commits in the end. neobot_melt_3

74 files were changed, +3189 lines added and -3646 lines removed (457 lines less, in the end).

Why is this cool?

Well, first of all, finishing off on something you've worked on for almost a month is always cool!
blobcat_amused ​:neobot_stretch_down:​
neobot_stretch_rightneobot_stretch_hneobot_stretch_hneobot_stretch_dl
But also, the reason for this refactor were developer UX issues I have noticed while working on the polyproto-core home server "sonata". I noticed, that the crate was written in such a way, that finding out whether any specific certificate was an actor ID-Cert, a home server ID-Cert, or just a plain invalid certificate required a
lot of additional work on the developers' end. What this refactor did, is essentially remove generic "ID-Certs" from the library in favor of two new, more specialized/focused types: "IdCertActor" and "IdCertHs", representing actor and home server certificates respectively. Now, if you are coding and have a IdCertActor metaphorically in front of you, you can be sure, that that ID-Cert has all the specified criteria that an ID-Cert for an actor has to meet, as per the specification.

codeberg.org/polyphony/polyproto-rs/pulls/95
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
1mo
mini-update:
Lots of things to do, and lots of things done! In the last days, I have worked a bit on data models for the chat-API, resolved some merge conflicts and cleaned up the polyproto-rs crate for an upcoming release with a much nicer API for developers, and reached out to the Fluxer community after
@alexia has already established contact and been doing lots of groundwork in trying to get developers together (thank you very much, Alexia!). I have also been looking at some PRs—some of which I haven't yet managed to review. Please be patient; an exhausted ava will get to them soon!
-
@star
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
1mo
codeberg.org/polyphony/typespec-openapi/commit/5a0a8e04ac4d9fdf88ca236d52f733435f6d3425?style=split
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
1mo
@star The draft will be just that: A draft. As with everything we do, we will most gladly accept feedback, constructive criticism and contributions, and we would love to collaborate with more developers to integrate lots of exciting projects into one, shared ecosystem that just works™️
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
1mo
will start drafting more polyproto-chat HTTP API design soon
-ava (
@star)
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
2mo
Merged: nix flake outputs, better CI, automated formatting!

Why is this cool? blobcateyes

This pull request streamlines how we do automated building, checking, and formatting of our repository. Before this PR, this functionality either didn't exist or was mildly hacky/janky inside the project. Having these automated checks is important to make sure a proposed change won't break the entire project. Without them, maintainers would have to manually verify each PR, which takes time.
blobcatflop

Also, previously, if a developer wanted to contribute, they'd have to manually install a whole suite of dependencies and run a gauntlet of commands to test their changes, like so:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
\. "$HOME/.nvm/nvm.sh"
nvm install 24
npm install -g @typespec/compiler
tsp install
npx prettier --write "**/*.{json,yaml,md}"
npx markdownlint "**/*.md"
tsp format "**/*.tsp"
tsp compile ./polyproto/core --dry-run
tsp compile ./polyproto/chat --dry-run
tsp compile .



neocat_0_0 That's a lot of friction and stuff to remember just to fix a typo or add a field! Ideally, the setup should be as simple as possible, so people don't get overwhelmed if they'd like to contribute.

Now, post-merge, the development environment is reproducible. In practice, this means, that you don't need to worry about having the wrong Node version or missing a formatter. When using the reproducible environment, you're using the same versions of everything as the maintainers are.

The entire formatting, testing and building workflow has been simplified to just three commands
neocat_science
# Format everything (TypeSpec, Markdown, JSON, YAML)
nix fmt
# Check if everything is correct without modifying files
nix flake check
# Build all the specifications
nix build



As you can tell, this is much cleaner, and it should make it easier for contributors to work on the project without fighting their local setup first.
blobcatfingerguns

I hope you enjoyed reading this overview!
blobcat_amused
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
2mo
@lucastheguy This depends largely on who you ask. To me, personally, The * is used to include all possible suffixes, such as "trans" (no suffix), "transgender" and "transsexual". This makes much more sense in German than in English, because German has many more "common" suffixes, such as "transgeschlechtlich", "transgender", "transident", "transsexuell", etc.

- ava
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
2mo
@lucastheguy It's phrased quite clearly!
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
2mo
shitpost if polyproto ever "sells out" we'll do it by me re-opening my onlyfans full stop send post
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
2mo
maybe if I delete the docs and just say "its ai".......... neocat_googly_woozy
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
2mo
ok so when is it my turn to get like a gazillion dollers so that I can hire smart and cool people to work on this fasterer neocat_angel
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
2mo
@schtick2940 Yes! Coordinating work is currently done via our Zulip, in case you'd like to join: polyphony.zulipchat.com

We also have a "good first issue"-board here:
issues.polyphony.chat

There's a whole bunch of work available for pickup which is easy and not very technical, but just hasn't been prioritized yet
neobot_melt_happy
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
2mo
we are unapologetically queer, btw verified_trans verified_rainbow polyprototrans
this has, so far, attracted a wonderful group of critters, all of whom have been a pleasure to interact with
celeste_hearts_trans celeste_hearts_progress_pride

however, I'll make one thing clear again: if you don't like it, then leave. Our code of conduct clearly forbids any type of bigoted discrimination, including
especially racism, ableism, queerphobia, pluralphobia and speciesism: coc.polyphony.chat
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
2mo
Over 80 new follows and >500 page views on polyproto.org tell us, that people are genuinely interested in a thorough change of scenery in the communications landscape. celeste_hearts_trans neobot_melt_happy Welcome, everynyan! Glad to have you on board neocat_hug_haj neobot_salute
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
2mo
@QueerMatters I wish we already were at this stage neodog_pleading we are already starting to develop software for it, but it's all too early to be even tried out by anyone just yet. neocat_floof_sad but good things take time!
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
2mo
@kett @alexia developers.stoat.chat/faq#:~:text=does stoat have federation? !
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
2mo
@zaire @mei @evening Sadly not, since 95% of the time spent working on it has been just me, so far
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
2mo
@jcm I am paw-sitively delighted to hear that! ^-^ Feel free to join our community space at polyphony.zulipchat.com and don't be afraid to ask questions! espeon_love
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
2mo
@evening @mei Hello neodog_floof_cute
No, but, genuinely: Matrix is not it. We are trying to learn from all the mistakes of XMPP, Matrix and others and make a protocol which is decentralized, long-term sustainable and most importantly accessible to the masses and everyone else by prioritizing UX over all else! Do take a look, if you are interested. polyproto-core is already implementable, even if only 85% finished.
espeon_love celeste_hearts_trans
User avatar
neocat_polyproto polyproto federation protocol @polyproto@amazonawaws.com
2mo
But lots still needs to be done!

The website needs attention, the polyproto-chat specification needs to be written, along with APIs, which need to be designed; Personas—plurality and multi-identity in the core protocol—need writing hands and paws, the chapter on authentication via OIDC needs to be continued, and lots of other issues could use your help! If you are at all interested in our work, please do feel free to join our forum at
polyphony.zulipchat.com . ​neobot_spoon_bot​ Together, we can make some big waves!

Boosts welcome
boost_requested celeste_hearts_trans polyprototrans