Kitsune

🦊 (fast) federated microblogging

Not yet dogfeeding our own software. Sorry 'bout that. Still a little too funky 'n' unstable for that.

Kitsune boosted:
violently gay :sterntastatur: :hex_non_binary:aumetra@corteximplant.net
2025-05-18
okay, time is flying by kinda. the end of my contract is approaching fast.

hi, im pretty damn good with rust, can also do typescript and other languages.

you can find the my resume on my website: https://aumetra.xyz/cv.pdf

#getfedihired
2025-04-22

@joakimfors @Codeberg yep, it would. the only concern i have is that we have a rather heavy CI workload and i really don't want to clog volunteer run infra with it

i love codeberg and am creating new repositories for projects of mine there

2025-04-22

@noidea good point, actually. that's why i'm right now trialing the github discussions page and thinking about reviving the section on the socialhub (a discourse instance)

2025-04-22

Kitsune chatrooms are deprecated. Matrix channels are locked, the Discord is deleted.

More expansive post here: aumetra.xyz/blog/kitsune-chats

Kitsune boosted:
violently gay :sterntastatur: :hex_non_binary:aumetra@corteximplant.net
2025-03-16
redid some UI stuff. how we feeling about this?
a refreshed look at the kitsune UI. features a slightly different colour theme, the instance description is now dynamically displayed on the left side.

the right side now features actually well formatted instance statistics, and the form had some UI refinements
2025-01-18

Working on the UI a bit so it's actually usable beyond account registration.

This is what the timeline is probably gonna look like. Already features virtual scrolling, so your browser won't explode from too many posts

A view of faker.js generated posts, all with unique usernames. The posts themselves sound like they are straight out of some bad hollywood hacker movie.
Kitsune boosted:
violently gay :sterntastatur: :hex_non_binary:aumetra@corteximplant.net
2025-01-16
btw in @kitsune we currently use regexes in *one* place (to match user-agents).

you might see regex syntax in the post parser, but that's not actually a regex. that thing emits a hyper-efficient lexer via proc-macros.

the lexer is ~113k lines of code generated by a proc macro. but hey, it gives us these kickass benchmarks where it:

- parses the whole post into its parts (hashtags, mentions, text)
- passes them through a blackboxed function to potentially transform these parts
- re-emit these parts into a coherent string

the whole process is also 100% lossless.

note that the whole benchmark also runs on the future executor provided by "futures_lite", so that's a little bit more overhead added even
benchmark output, showing the example post "Hello, #World! This is a benchmark for the post transformer of @kitsune" being passed through a no-op transformer.

the median time taken is 229.3ns
Kitsune boosted:
violently gay :sterntastatur: :hex_non_binary:aumetra@corteximplant.net
2025-01-05
testing the new @kitsune oauth2 impl. and its working quite well already. gonna add a bunch of rfc tests still for confidence and whatever
2025-01-04

Because `axum-flash` is apparently unmaintained we made our own. Called `flashy`, integrates perfectly with `tower` and, optionally, ` axum`.

Soon in the Kitsune sourcetree

2025-01-02

@jplatte incredibly painless, most time was spent forking and PR-ing upgrades for the dependencies.

Also it's nice that we can now specify custom behaviour when extracting `Option<Self>` even if it results in some light boilerplate if we just want to swallow errors (maybe an attribute macro for the `impl FromRequest(Parts)` block would work?)

github.com/kitsune-soc/kitsune

2025-01-01

axum v0.8 upgrade for Kitsune incoming. Also filed a few PRs to dependencies of ours to make them work :3

Kitsune boosted:
violently gay :sterntastatur: :hex_non_binary:aumetra@corteximplant.net
2024-12-13
1000 Kitsune stickers :3
Kitsune congress prep done

Thank you @tihyltew for giving me permission to print them.
A box full of stickers with one sticker laying on top, with an artwork tihyltew made, of the corteximplant.com mascots hanging out together with the Kitsune mascot.

Hangaku (the Kitsune mascot) is leaning on John Cyberdon (the corteximplant.com mascot) who isn't looking all that happy about it, while Ramona (the corteximplant.net mascot) is floating above them
Kitsune boosted:
violently gay :sterntastatur: :hex_non_binary:aumetra@corteximplant.net
2024-12-12
optimized the mastodon ID -> UUID v7 conversion a bit further by skipping the wyrand stretching step and doing an unsafe `ptr::copy_nonoverlapping`
screenshot of the benchmark output, now with the median speed being:

ASCII encoded integer: 12.42ns
u64 integer (i.e. without the ASCII parsing step): 8.4ns
2024-11-27

@joakimfors @evan Thanks for notifying! I will definitely planned to go to FOSDEM 2025 already. I just need to figure out the scope of the talk I would hold

2024-11-24

Preview for HTTP requests from inside Wasm MRFs is merged. I'm going to bed. Good night

2024-11-14

✅ Tailwind-based restyling: merged
✅ HTTP connection pooling utilization improvements: merged
✅ User-space DNS resolvers: merged
✅ Per-default DNS-over-TLS via @quad9dns for all HTTP requests: merged

Kitsune boosted:
violently gay :sterntastatur: :hex_non_binary:aumetra@corteximplant.net
2024-11-12
yaay kitsune soon runs all of its dns queries through a user-space DNS resolver

now for some pooling improvements for DNS and HTTP
2024-11-04

This is done to prevent possible memory exhaustion DoS attacks on instances through faulty MRF implementations. Worst case an activity gets dropped.

2024-11-04

HTTP requests and a limit on used memory which I forgot to implement previously.

Wasm plugins can now only ever use 100MB of memory. Any more and it will error out execution.

2024-11-04

Also regarding the Wasm MRF (message rewrite facility; basically an activity-level plugin system), it is getting support for HTTP requests.

This effort was started due to requirements by @perillamint for something she is prototyping using the MRF API 🦊

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst