about summary refs log tree commit diff
path: root/kittybox-rs/src/database/file
Commit message (Collapse)AuthorAgeFilesLines
* database: add "add_or_update_webmention" operationVika2023-07-221-0/+50
| | | | | | | This is an operation that atomically adds or updates a webmention cite attached to a post. This is used so a database backend can optimize for it (for example, using a transaction or shifting the JSON modification operation to the database)
* database/file: tokio::fs::create_dir_all is idempotentVika2023-07-171-6/+3
|
* FileStorage: properly fsync() files and directoriesVika2023-07-171-9/+21
| | | | | | Total crash-safety. Yank the power cord all you want, your data is going to be safe and sound. (Unless your drive controller lies to you about flushing its caches)
* database{,/file}: clean up code, add documentation and loggingVika2023-07-091-80/+108
| | | | | | | | | | | | `filter_post` is now out of here and moved into the frontend. This kind of non-intrusive filtering can be done on the frontend, and the database need not concern itself with this. It can still be done as an optimisation... probably? but the frontend is going to sanitize things like location in the post by itself now, so it is not required anymore (and might be harmful, if frontend starts indicating that there are some hidden fields by replacing them with placeholders that ask one to log in to view information).
* micropub: use the new, better typed updates internallyVika2023-07-011-41/+17
|
* database: use domains instead of authorities as owner keyVika2023-06-221-24/+29
| | | | | This allows disregarding http/https comparisons and simplifies some database designs.
* database: introduce read_feed_with_cursorVika2023-06-221-1/+11
| | | | | read_feed_with_cursor allows using an arbitrary string as a cursor, unlike read_feed_with_limit, which uses last post's UID as a cursor.
* StorageError: use std::borrow::Cow for msg fieldVika2023-06-221-9/+10
| | | | | This allows avoiding an unnecessary allocation whenever the error message is static.
* Database: use newtypes to represent settingsVika2023-06-151-17/+14
| | | | This allows much for a cleaner and idiomatic settings interface.
* kittybox-templates: split out MF2 rendering and get rid of log crateVika2022-07-271-4/+4
| | | | | Kittybox now uses tracing instead of log. Why would I keep an unneccesary dependency in my Cargo.lock?
* FileStorage: save memory by taking children instead of cloningVika2022-07-231-16/+22
|
* treewide: rewrite using AxumVika2022-07-071-38/+70
| | | | | | | | | | | | | | Axum has streaming bodies and allows to write simpler code. It also helps enforce stronger types and looks much more neat. This allows me to progress on the media endpoint and add streaming reads and writes to the MediaStore trait. Metrics are temporarily not implemented. Everything else was preserved, and the tests still pass, after adjusting for new calling conventions. TODO: create method routers for protocol endpoints
* flake.nix: reorganizeVika2022-05-241-0/+619
- 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