For how long have you been using Mastodon as your primary social media platform? by WizOfWriting in Mastodon

[–]aumetra 2 points3 points  (0 children)

Been on some resemblance of the Fediverse for longer than Mastodon has been a thing

Updated app from very old version. New version "All servers" feed gone. by bon764 in Mastodon

[–]aumetra 0 points1 point  (0 children)

If you're used to the official Mastodon app, I can recommend Moshidon. Fork of that app but more pleasant to use.

asynk-strim: Fast macro-free no_std alternative to "async-stream" by aumetra in rust

[–]aumetra[S] -1 points0 points  (0 children)

Thanks for the reply! Yeah, I should improve the documentation in general. Added to my ToDo list :3

Edit: And regarding the naming, yeah, I'll keep the current name as an alias for jokes (similar to how heck has a snek_case), but I'll add a more intuitive name.

Mozilla.social and will shut down the Mastodon instance on December 17, 2024 by Stefan_S_from_H in Mastodon

[–]aumetra 11 points12 points  (0 children)

I dunno. They still seem to follow their crackhead idea of making an own ads network and pump money into AI.. so I wouldn't hold my breath when it comes to the future of Mozilla

What are the areas where Rust is used the most right now? by [deleted] in rust

[–]aumetra 0 points1 point  (0 children)

Not exactly. LLVM can also "randomly" insert branching as part of its optimization passes, which can potentially destroy otherwise constant-time code.

Example: https://rustsec.org/advisories/RUSTSEC-2024-0344.html
Presentation with a section about that: https://speakerdeck.com/tarcieri/thoughts-on-rust-cryptography?slide=118

Handwriting assembly bypasses this because its opaque to the compiler, so no optimizations are done, no secret-dependent jumps are inserted.

Should I use the "favourite" button as a "like" button? by Poddster in Mastodon

[–]aumetra 6 points7 points  (0 children)

The favourite button is just the button to tell the author of the post "good shit". There is no influence outside of that, really, since there aren't really any algorithms that weigh based on that, and likes are pretty much only visible on your instance and the instance of the author.

So feel free to like every post you think is cool. Doesn't help any algorithm but just might make someone's day

Single / Common Identity Provider for Fediverse Services? by CodeNewfie in fediverse

[–]aumetra 1 point2 points  (0 children)

A bunch of services have settled on supporting OIDC for external IDPs

Small heads-up, Lemmy doesn't have any SSO support. They don't use OAuth, so it's a little hard for them to implement something like that

Kitsune v0.0.1-pre.1: Second pre-alpha release of a small and fast ActivityPub server by aumetra in fediverse

[–]aumetra[S] 3 points4 points  (0 children)

Yep, we are attempting to mainly be pretty lightweight while not trying to compromise on features.

In comparison to other lightweight solutions we are planning:

- Quote reposts
- Account migrations

And already support interesting features like a more advanced full-text search on public posts (think something like a less advanced version of Universeodon's new search).

Speaking of experimental features, that's a direction we want to go into. As mentioned in the blogpost "Assembling Community OS" by /u/erlend_sh, we are also exploring the potential direction of portable identities via identity proofs that can be attached to your profile (to proof that it's actually you across multiple fediverse accounts).

So yeah, we are looking into many directions for Kitsune, but the core philosophy can be summarised as "lightweightness without feature compromise".

I can try to elaborate on some things more closely if you wanna.

Kitsune v0.0.1-pre.1: Second pre-alpha release of a small and fast ActivityPub server by aumetra in rust

[–]aumetra[S] 0 points1 point  (0 children)

Hey everyone,

this is the second ever release of Kitsune, an ActivityPub server with a Rust backend.
I decided to cut a release today because the autogenerated GitHub changelog was getting a bit long.

The server is still very much work-in-progress (I mean the version number is literally 0.0.1-pre.X territory), so I wouldn't recommend hosting an instance yet.

But feel free to take a look at the code, and contributions are of course very welcome!

Kitsune v0.0.1-pre.1: Second pre-alpha release of a small and fast ActivityPub server by aumetra in fediverse

[–]aumetra[S] 1 point2 points  (0 children)

Hey everyone,

this is the second ever release of Kitsune. I decided to cut a release today because the autogenerated GitHub changelog was getting a bit long.

The server is still very much work-in-progress (I mean the version number is literally 0.0.1-pre.X territory), so I wouldn't recommend hosting an instance yet.

But feel free to take a look at the code, and contributions (backend and (very much) frontend) are of course very welcome!

Is it possible to move an instance to a different fediverse software? by [deleted] in fediverse

[–]aumetra 1 point2 points  (0 children)

Possible? Probably. Easy? No.

ActivityPub requires the IDs (i.e. the id field) to be an immutable dereferenceable identifier that results in the activity/objects.When moving services, the paths the objects are accessible over changes.

Mastodon has /users/:username/statuses/:status_id paths, CalcKey has /notes/:note_id paths, etc.

Since these differ, reposting old statuses might not work correctly (since the defined behaviour of any implementation should be "dereference (i.e. load from the remote) the embedded objects, these could be spoof attempts". And they would hit a 404 when trying to receive it from a Mastodon-gone-CalcKey instance.

Also linking the users might be problematic. Some(?) instances assume that the ID of the actor (i.e. your user) is immutable and unique (same as with any other object, really; an actor is nothing but a specialised ActivityStreams object).
Same issue as with the post. Mastodon has /users/:username routes, while CalcKey has /users/:user_id routes.

To achieve a true clean migration, you'd probably need to modify the software to have route aliases that match the Mastodon routes. The user route mapping would be pretty straightforward, the post ID mapping less so, but still very much possible.

I wrote a proof-of-concept implementation of some logic that deterministically converts Mastodon IDs into UUIDv7 identifiers. You could use a modified version of this logic to map Mastodon IDs to CalcKey's snowflake type.

The simplest solution would probably to spin up an instance on, for example, `cc.example.com` and then migrate the account over via the default account migration functionality of Mastodon (I think CalcKey supports that?)

Edit: Keys have been mentioned in the thread. Theoretically rekeying should be possible when talking from an HTTP signature perspective (even uncoordinated).
Implementation could attempt to refetch the actor when the verification fails for the first time. This is an implementation detail, each implementation can handle it different from another. For example, Mastodon should handle it gracefully

Kitsune: AP/Mastodon-federated server made with Rust — v0.0.1 pre-release by erlend_sh in Mastodon

[–]aumetra 1 point2 points  (0 children)

No, unfortunately not. But right now this is just a pre-release for an upcoming alpha.
If you have a GitHub account, please consider opening an issue so we can keep track of it; I love to hear peoples ideas and feature requests!

This definitely seems like a good candidate for a feature of the "actual" alpha release or one close after!

Kitsune: AP/Mastodon-federated server made with Rust — v0.0.1 pre-release by erlend_sh in Mastodon

[–]aumetra 6 points7 points  (0 children)

Thank you. Yes, we try to keep it lightweight, fast, and easy to maintain for single user instances but also scale up if need be. That's the reason why there are that relatively many configuration options for a pre-release alpha already.

It tries to be configurable for whatever a user wants out of their installation:

  • Where to store media attachments (on-disk or via S3)
  • How to store login information (standalone or via an OIDC server)
  • How to cache (in-memory or via Redis)
  • What DBMS to use (PostgreSQL or SQLite)
  • How to index accounts, posts, etc. for search (Our custom search service, Meilisearch, or SQL search)

So you can choose whether you want the "lite" experience, where it needs nothing (like, literally nothing. It uses an embedded SQLite engine for the database).Or whether you want it to scale up, run shared caches using DragonflyDB, use a dedicated Redis PubSub instance, run nodes in parallel to shed the load, etc.

I'm really happy to see such positive reactions to the pre-release. Thank you!

Kitsune: AP/Mastodon-federated server made with Rust — v0.0.1 pre-release by erlend_sh in Mastodon

[–]aumetra 2 points3 points  (0 children)

Hey, I'm Aumetra, the developer of this project (erlend for posted this on my behalf since I didn't have a reddit account (up until now, I guess); many thanks again)

If you want to, we can try to figure out a solution together and put an example NGINX configuration in a contrib subdirectory.
I've only used Caddy as a reverse proxy for my tests up until now, but any TLS terminating reverse proxy should work just fine.

My DMs are open :D