about summary refs log tree commit diff
path: root/kittybox-rs/src/database/memory.rs
Commit message (Collapse)AuthorAgeFilesLines
* Moved the entire Kittybox tree into the rootVika2023-07-291-249/+0
|
* database: add "add_or_update_webmention" operationVika2023-07-221-0/+5
| | | | | | | 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/memory: cleaner update_post implementationVika2023-07-091-1/+70
| | | | | | | | | | | | This one manages to avoid extraneous allocations as much as possible, by deconstructing the update into pieces and using a mutable reference taken directly from the hashmap in which the posts are stored. Now if only this hashmap were to be serialized on Drop, we could even have persistence in the database and therefore gain another backend that requires no dependencies to run, just like FileStorage, but avoids extraneous file access (or maybe shunts it into the background?)
* micropub: use the new, better typed updates internallyVika2023-07-011-109/+2
|
* database: introduce read_feed_with_cursorVika2023-06-221-1/+12
| | | | | 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-5/+5
| | | | | This allows avoiding an unnecessary allocation whenever the error message is static.
* Database: use newtypes to represent settingsVika2023-06-151-3/+4
| | | | This allows much for a cleaner and idiomatic settings interface.
* treewide: rewrite using AxumVika2022-07-071-34/+104
| | | | | | | | | | | | | | 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/+200
- 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