about summary refs log tree commit diff
path: root/Cargo.lock
Commit message (Collapse)AuthorAgeFilesLines
* tower-watchdog: init at 1.0.0Vika47 hours1-4/+64
| | | | | | | Wait, is this my first self-contained crate? Not bad. I like this. Maybe I'll go publish it to crates.io? Change-Id: I340d0839746ff1cfbcc4c82c230ae2adff2a92f7
* Set MSRV to 1.75, remove #[async_trait] declarations whenever possibleVika2024-08-261-1/+0
| | | | | | | Axum still uses `async_trait`, let them do whatever they want. I will no longer be subject to the humiliation of trying to dig through lifetime errors and unreadable declarations. Also I don't fucking care about MSRV, I'm not a library. If you don't have modern Rust, get one.
* Add HTTP fetcher cacheVika2024-08-261-0/+174
| | | | | | | It just does its thing in the background, potentially speeding up things. Maybe I could also use the underlying in-memory cache implementation (Moka) to speed up my database. I heard crates.io got some good results from that.
* kittybox-util: 0.1.0 -> 0.2.0Vika2024-08-201-1/+2
| | | | Micropub types are now more coherent and gathered in one place.
* Better match html content-typeVika2024-08-181-0/+1
|
* Upgrade dependencies and fix deprecated functionalityVika2024-08-021-606/+751
| | | | | | | I think I managed to not lose any functionality from my dependencies. sqlparser remains unupgraded, but that's mostly because it is only used in one example and it's not worth it to upgrade right now.
* cargo updateVika2024-08-011-900/+871
|
* Get cookie key from the environmentVika2024-08-011-0/+1
|
* Start working on login functionalityVika2024-07-091-0/+5
|
* kittybox-indieauth: 0.1.0 -> 0.2.0Vika2024-07-091-1/+1
| | | | | | | | | Added fundamental AutoAuth types. This library can now be used to augment existing authorization and token endpoints with AutoAuth capabilities. See https://github.com/sknebel/AutoAuth/blob/master/AutoAuth.md for the latest spec draft.
* Prototype sanitizer for SQLVika2024-06-141-0/+12
| | | | | | This might allow me to use SQL syntax in Kittybox's private search interfaces, allowing for queries of incredible specificity while not allowing to query private data or inject arbitrary SQL.
* templates-neo: fix hacks around the `html` crateVika2023-08-081-4/+4
| | | | Finally I can properly add child elements without using the string hack.
* templates-neo: initVika2023-07-311-0/+37
| | | | | | This is an experimental approach to templates, using `yoshuawuyts`'s `html` crate. The crate itself has a promising API, but is notably incomplete.
* Moved the entire Kittybox tree into the rootVika2023-07-291-0/+4589
|
* flake.nix: reorganizeVika2022-05-241-4247/+0
| | | | | | | | | | | | - Kittybox's source code is moved to a subfolder - This improves build caching by Nix since it doesn't take changes to other files into account - Package and test definitions were spun into separate files - This makes my flake.nix much easier to navigate - This also makes it somewhat possible to use without flakes (but it is still not easy, so use flakes!) - Some attributes were moved in compliance with Nix 2.8's changes to flake schema
* templates: introduce unit testsVika2022-05-231-0/+4
| | | | | | | | | | | | | | | These unit tests generate a random MF2-JSON post, convert it to MF2-HTML using the template and then read it back using the `microformats` crate. The only problem is that it has a nasty bug with overstuffing implied properties. This is being worked on: https://gitlab.com/maxburon/microformats-parser/-/issues/7 For now the tests marked as ignored because they fail. But the function itself that generates them should remain here for documentation and potential code sharing with the `microformats` crate, potentially even migrating to a subcrate there.
* Cargo.toml: fix Nix builds in restricted modeVika2022-05-121-98/+79
|
* treewide: prepare for mf2 parsing and cleanup unused codeVika2022-05-121-93/+359
|
* FileStorage: fixes and regression tests for read_feed_with_limitVika2022-05-101-7/+18
| | | | Now I will know if something breaks horribly again.
* Split into different cratesVika2022-05-071-1/+22
| | | | | | | | | Templates and utility types are now separate crates to speed up compilation, linting and potential reuse/replacement. Potentially more crates could be split out/modularized, resulting in speedups, smaller binaries (whenever features are excluded) and even more reuse capabilities.
* Cargo.lock: updateVika2022-05-031-413/+535
|
* chore: code cleanupVika2022-05-011-55/+0
|
* added tokio-console instrumentation supportVika2022-04-171-12/+346
|
* added mediatype to replace http_types::MimeVika2022-04-171-0/+7
|
* Cargo.toml: add reqwestVika2022-04-151-3/+68
| | | | It's an advanced HTTP client that can do more than vanilla Hyper does.
* Make the settings in the database a strong typeVika2022-03-231-0/+10
|
* Restored most of the functionality (except onboarding and some queries)Vika2022-03-061-0/+1
|
* metrics: new metrics collection using warp-prometheusVika2022-03-021-5/+82
|
* add compat between http_types and httpVika2022-02-211-0/+1
|
* Add a module for IndieAuth bearer token authVika2022-02-211-0/+535
| | | | | | | | | | | | | require_token() uses a token endpoint URI and an HTTP client to query the token endpoint and return a User object if the user was authorized, or rejecting with IndieAuthError if not. It is recommended to use recover() and catch the IndieAuthError at the application level to show a "not authorized" error message to the user. This function is more intended for API consumption, but is general enough to permit using in other scenarios. TODO: make a variant that returns Option<User> instead of rejecting
* WIP: convert to Tokio and WarpVika2022-02-151-489/+432
| | | | | | | | | | | Warp allows requests to be applied as "filters", allowing to flexibly split up logic and have it work in a functional style, similar to pipes. Tokio is just an alternative runtime. I thought that maybe switching runtimes and refactoring the code might allow me to fish out that pesky bug with the whole application hanging after a certain amount of requests...
* Added support for IndieAuth client sign inVika2021-12-061-150/+153
| | | | | | | This will allow readers to view private posts intended just for them. Additionally fixed bugs in patterns due to which webmentions might not have been sent.
* Deprecated Redis backend and added a database migration tool (untested, beware)Vika2021-10-271-37/+3
|
* Code cleanup and Cargo.lock updatesVika2021-09-271-165/+203
|
* Implemented FileStorage::get_setting and FileStorage::set_settingVika2021-09-271-0/+6
|
* Added a WIP file backendVika2021-08-151-53/+185
| | | | | | | Currently unavailable for use and only has basic GET and POST operations implemented. A lot more work is needed to make it truly usable. Locking is implemented using flock() system call on Linux.
* Revert "Moved mobc to a custom repo"Vika2021-08-101-1/+2
| | | | This reverts commit 1c1d0e504c276ccb3c204aa28750f86610bff248.
* Added Prometheus instrumentationVika2021-08-061-0/+136
| | | | | | I need to instrument the mobc library used for the Redis connection pool, but that can be done later since I am somewhat tired. I don't remember how much I've worked and I need a break... >.<
* Moved mobc to a custom repoVika2021-08-061-2/+1
|
* Renamed main executable to kittybox, added toolsVika Shleina2021-07-191-3/+4
| | | | | | | | | The new tools are: - kittybox-bulk-import, a bare-bones Micropub client that reads a JSON list of posts and then sends them one by one to the Micropub endpoint - pyindieblog-export, my personal tool which directly connects to Pyindieblog's redis instance and extracts data from it in JSON format suitable for use with kittybox-bulk-import.
* Updated flake.lock and Cargo.lockVika Shleina2021-07-071-155/+162
|
* Removed openssl dependency - now the code is pure RustVika2021-05-101-225/+135
|
* Added a frontend to the application. TODO: Login, alternative themes, ↵Vika2021-05-091-0/+38
| | | | built-in Micropub capabilities when logged in
* Added rudimentary caching to IndieAuth middlewareVika2021-05-051-0/+24
|
* Added a connection pool to the RedisDatabaseVika2021-05-051-110/+2
|
* Refactored the database module and its testsVika2021-05-041-30/+93
|
* Initial commitVika2021-05-041-0/+2708
Working features: - Sending posts from the database - Reading posts from the database - Responding with MF2-JSON (only in debug mode!) - Not locking the database when not needed - All database actions are atomic (except for a small race where UIDs can clash, but that's not gonna happen often) TODOs: - Send webmentions - Send syndication requests - Send WebSub notifications - Make tombstones for deleted posts (update adding dt-deleted) - Rich reply contexts (possibly on the frontend part?) - Frontend? - Fix UID race Code maintenance TODOs: - Split the database module - Finish implementing the in-memory test database - Make RedisDatabase unit tests launch their own Redis instances (see redis-rs/tests/support/mod.rs for more info) - Write more unit-tests!!!