Email or username:

Password:

Forgot your password?
wakest ⁂

Kitsune is a new project that has joined the fediverse recently. It's mostly written in Rust and intends on Mastodon API compatibility so it can use the existing app ecosystem. It also just got initial support for viewing full PeerTube and Lemmy posts!

You can learn more at joinkitsune.org, and you can follow the development from here at @dev, which is being posted from a Kitsune server! Here is an example post on a live server you can look at as well dev.joinkitsune.org/posts/0188 #fediverse

17 comments
wakest ⁂

Looks like @0x0 is the founding developer?

Aumetra Ⓐ :nonbinary:

@liaizon yep, I started kitsune a while ago :blobfoxfloofhappy:​

im taking this as an opportunity to say: anyone feel free to send thing regarding my way either on this account or on @dev

i will see both (just because of the lack of notifications in kitsune atm, it might take a bit longer until i see them on @dev :blobcatdizzy:​)

wakest ⁂

@0x0 @dev Thanks for the reply! Really exciting to see all these different servers take off in different directions. As someone who has been active on the fediverse for 6+ seeing these new directions take shape is really quite exhilarating.

wakest ⁂

@0x0 I noticed that usernames on Kitsune look like some sort of key or hash: dev.joinkitsune.org/users/0188 and then are displayed as @dev to Mastodon. Do you have an outline of how you imagine names will work moving forward? and how that might work in the future when things like account migration start coming into play? One of the main issues with older software in the fedi is that they have not been designed with the ability to change usernames from the beginning

wakest ⁂

@0x0 so all the posts are "hard coded" with the path of the username that posted it, so designing a mechanism that would let a user move to another server and bring their old posts with them is sort of impossible with most fedi software. There are solutions to this issue in places like 'streams' nomadic identity and other places like Nostr and maybe Bluesky (tho thats yet to be seen in practice) but this is a space where the fedi really needs to do some work...

Aumetra Ⓐ :nonbinary:

@liaizon As far as the ActivityPub standard is concerned, usernames should be completely changeable.
As you noticed with Mastodon and Akkoma, they add the username to the ActivityPub ID which makes changing usernames pretty much impossible since the ID is supposed to be immutable.

We are using the IDs at the moment since it will make it easier for us to potentially support multiple domains (something similar to what Takahe does).
But we can also explore how different implementations react to username changes, and if the reaction isn't "we break everything", it might be something worth considering.

This multi-domain support is also somewhat related to portability. The idea is that a user is able to register their own domain and use a hosted instance via their own domain.
I.e. the account is on "kitsune.nexus" but they use their own domain with it.
The IDs of the actor, posts, etc. reference that own domain they brought.

This will enable some sort of portability (at least between Kitsune servers) since the user is still in control of their domain. A more detailed explanation can be found here: shadowfacts.net/2023/activityp

This is all very much in the planning phase though.

However this is something we want to add before we do our first "proper" release since we want to guarantee data model stability from there on out.

@liaizon As far as the ActivityPub standard is concerned, usernames should be completely changeable.
As you noticed with Mastodon and Akkoma, they add the username to the ActivityPub ID which makes changing usernames pretty much impossible since the ID is supposed to be immutable.

We are using the IDs at the moment since it will make it easier for us to potentially support multiple domains (something similar to what Takahe does).
But we can also explore how different implementations react to username...

Aumetra Ⓐ :nonbinary:

@liaizon @dev I've been also a bit on the fediverse for a while now (started using it like half a year before Mastodon first released; back then on GNU social). And I agree, seeing all the new projects and tooling around the fediverse is really great.

Things like GoToSocial, Elk, etc. are really inspiring, and especially with Elk focussing on the UX, it a really big step towards more people adopting the fediverse

Christian Pietsch 🍑

@liaizon

You know I'm neither impatient nor a sysadmin noob, but when trying to install #Kitsune on Debian 11 yesterday, I gave after two hours.

The first hour passed while cargo compiled almost 1000 Rust packages. Fine, I guess this is what happens when you enter a new ecosystem.

The second hour was more infuriating because I failed to construct a valid configuration file for Kitsune. These are in a language called #dhall which seems to be inspired by Haskell.

I tried renaming the config.example.dhall and switching it to sqlite because I thought that for a test drive, installing PostgreSQL was overkill. So I copied the line from docs.joinkitsune.org/en/runnin and got this error message:

thread 'main' panicked at 'Failed to connect to database: Pool(Backend(ConnectionError(CouldntSetupConfiguration(DatabaseError(UnableToSendCommand, "invalid connection string: unexpected EOF")))))', kitsune/src/main.rs:94:6

Using the entire configuration example from that website results in the same error message.

/cc @dev

@liaizon

You know I'm neither impatient nor a sysadmin noob, but when trying to install #Kitsune on Debian 11 yesterday, I gave after two hours.

The first hour passed while cargo compiled almost 1000 Rust packages. Fine, I guess this is what happens when you enter a new ecosystem.

The second hour was more infuriating because I failed to construct a valid configuration file for Kitsune. These are in a language called #dhall which seems to be inspired by Haskell.

wakest ⁂

@chpietsch @dev have you already posted this in their issue tracker? you also may get a better response if we tag @0x0 cause I don't think Kitsune has any notification abilities written yet

Christian Pietsch 🍑

@liaizon @dev @0x0

Not yet: I needed to wait for the frustration to ebb away. Then I tried to forget about Kitsune. Then you reminded me. ;-)

Aumetra Ⓐ :nonbinary:

@chpietsch @liaizon @dev oh no, I'm sorry it was a frustrating experience but I can totally understand. It could have been different problems depending on when you tried it.
The most likely problem is that we (as in multiple people in the development chat, this was a large decision and it was best to consult multiple people before going through with this) decided to forego SQLite Support in the newest release.
The reasons were the growing complexity of keeping it in the codebase. When we introduced better full text search, we basically had to split the migrations into two with different constraints, different table layouts, etc.
Basically a lot of maintenance work.

Around that time we were also looking into different ORMs around that time since the old one was on one hand quite dynamic, but on the other hand didn't really aid us via compile-time checks.
The new one we settled on didn't have support for SQLite though.

So those two reasons combined meant that we did forego the support for it.

A classic failure to update documentation by me, my mistake and I apologise for that. I will update them ASAP.
If you wanna give it a try with a PostgreSQL database though but it still has issues, feel free to either ask Mr here or over in one of the chat rooms (linked in the project README)

@chpietsch @liaizon @dev oh no, I'm sorry it was a frustrating experience but I can totally understand. It could have been different problems depending on when you tried it.
The most likely problem is that we (as in multiple people in the development chat, this was a large decision and it was best to consult multiple people before going through with this) decided to forego SQLite Support in the newest release.
The reasons were the growing complexity of keeping it in the codebase. When we introduced...

Christian Pietsch 🍑

@0x0

Thanks for explaining! It all makes a lot of sense. Will try again with Postgres.

@liaizon @dev

Aumetra Ⓐ :nonbinary:

@chpietsch @liaizon @dev Thank you for giving it a second chance, also the chat channels aren't for development only buy also if someone needs support, so feel free to pop in any time (I should probably add this to the documentation, too)

Christian Pietsch 🍑

@0x0

Maybe try to make this error message more helpful. As it mentions EOL, I thought I had a syntax error in that weird config file.

I was not able to see an unbalanced quote or bracket. So I installed the dhall tool but it was happy with my config file. Then I gave up.

@liaizon @dev

Aumetra Ⓐ :nonbinary:

@chpietsch @liaizon @dev Thanks for the feedback, I will try to improve that.
In case you still have the config file with which you produced the error, it would be great if you could send that my way.
Because judging from the error, it parsed the file correctly but it was actually the database driver that got confused.
With the repro file I could try to just do some checks on the database string to prevent these unhelpful messages

Brendan Tobolaski

@liaizon looks interesting. The typography on that landing page drives me bonkers.

wakest ⁂

@brendan I quite like it. Typography is one of those things there are a million ways to express. I am quite tired of everything trying to look so flat and minimalist online.

Go Up