Groundwork library code #1

Merged
Julia merged 8 commits from setup into main 2026-02-06 15:23:44 -08:00
Owner

This is (almost) all the groundwork library code to start building an implementation off of.

Everything else (specifically feed_items) will make more sense once I start actually writing integrations, so that is up next. New branch time though, this one is already too big

This is (almost) all the groundwork library code to start building an implementation off of. Everything else (specifically feed_items) will make more sense once I start actually writing integrations, so that is up next. New branch time though, this one is already too big
Julia added 8 commits 2026-02-06 15:23:20 -08:00
Adds Chrono package

Adds a "Result" type to lib.rs

creates helpful type aliases for Score, Boost, and Gravity.

Creates a "TimedScore" which is a value and time data for calculating
score over time. There are two forms of this, Boosted and Decaying.
Since a Score can either be decaying over time or have been boosted
recently and be kept from decaying for some time.

Also implements a BoostedScore and a DecayingScore, which are both
TimedScores which represent the different states. These are important
because you can't boost a BoostedScore for instance.
Adds SQLX for database management, and an Adapter interface for
interacting with it. Through the type "AdapterPool"

Creates an initial_schema with everything I think I'll need.
Tests for all the core functionality implemented to score in a42853a.

Optimistically adding a test_utils mod for shared test code
Adds all the basic user functions, and tests for them.

This is also intializes the DB Module, which will have more things in it
Adds the primary functionality for channel and feed

Also adds a function to user to get the feeds associated with a user.
Creates item. It's pretty barebowns until I implement fetching.

I also added get functions for feed and channel to get items with.
Creates a fetch mod for fetching remote rss content.

This implementation is barebones and not great since it doesn't pass any
compression or timestamp information.
Adds a feed_channel implementation which reflects a feed's specific
settings per channel.

Also added an UnparsedTimedScore to score which allows parsing to score
from db in a controlled fashion.
Julia merged commit bab52687c7 into main 2026-02-06 15:23:44 -08:00
Julia deleted branch setup 2026-02-06 15:23:44 -08:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Julia/Koucha#1
No description provided.