6 releases (3 breaking)

0.16.0 Nov 15, 2024
0.15.0 Sep 24, 2024
0.14.4 Sep 16, 2024
0.14.2 Apr 25, 2024
0.13.0 Jan 6, 2024

#291 in Database interfaces

Download history 3/week @ 2024-08-16 7/week @ 2024-08-23 12/week @ 2024-08-30 2/week @ 2024-09-06 234/week @ 2024-09-13 243/week @ 2024-09-20 48/week @ 2024-09-27 19/week @ 2024-10-04 19/week @ 2024-10-11 8/week @ 2024-10-18 4/week @ 2024-10-25 16/week @ 2024-11-01 4/week @ 2024-11-08 135/week @ 2024-11-15 21/week @ 2024-11-22 19/week @ 2024-11-29

180 downloads per month
Used in 6 crates

AGPL-3.0-or-later

1MB
24K SLoC

etwin_hammerfest_store

Inputs

<user> (any)
ShortHammerfestUser

<shop> (/shop.html)
(ShortHammerfestUser, HammerfestShop)

<profile> (/user.html/$USER)
HammerfestProfile

<inventory> (/user.html/inventory)
(ShortHammerfestUser, HashMap<HammerfestItemId, u32>)

<godChildren> (/user.html/godChildren)
(ShortHammerfestUser, Vec<HammerfestGodchild>)

<forumTheme> (/forum.html/theme/$THEME/)
HammerfestForumThemePage

<forumThread> (/forum.html/thread/$THREAD/)
HammerfestForumThreadPage

Permanent data

hammerfest_servers(hammerfest_server;)
hammerfest_users(hammerfest_server, hammerfest_user_id, username)
hammerfest_forum_themes(hammerfest_server, hammerfest_theme_id; title, description, is_public)
hammerfest_forum_threads(hammerfest_server, hammerfest_thread_id)
hammerfest_items(hammerfest_item_id; is_hidden)
hammerfest_quests(hammerfest_quest_id;)

hammerfest_item_count_maps(hammerfest_item_count_map_id; _sha3_256)
hammerfest_item_count_map_items(hammerfest_item_count_map_id, hammerfest_item_id; count)
hammerfest_quest_status_maps(hammerfest_quest_status_map_id; _sha3_256)
hammerfest_quest_status_map_items(hammerfest_quest_status_map_id, hammerfest_quest_id; status)
hammerfest_unlocked_item_sets(hammerfest_unlocked_item_set_id; _sha3_256)
hammerfest_unlocked_item_set_items(hammerfest_unlocked_item_set_id, hammerfest_item_id;)

Archive Shards

<profile(logged) + shop + godChildren + inventory>
hammerfest_tokens(hammerfest_server, hammerfest_user_id; tokens);

<shop>
hammerfest_shops(hammerfest_server, hammerfest_user_id; weekly_tokens, purchased_tokens, has_quest_bonus);

<godChildren>
hammerfest_godchild_lists(hammerfest_server, hammerfest_user_id; godchild_count);
hammerfest_godchildren(hammerfest_server, hammerfest_user_id, offset_in_list; godchild_id, tokens);

<profile>
hammerfest_profiles(hammerfest_server, hammerfest_user_id; best_score, best_level, season_score, quest_statuses, unlocked_items)

<profile(logged)>
hammerfest_emails(hammerfest_server, hammerfest_user_id; email)

<profile(moderator)>
hammerfest_forum_ban(hammerfest_server, hammerfest_user_id; forum_ban)

<profile + forumThread>
hammerfest_user_achievements(hammerfest_server, hammerfest_user_id; has_carrot, ladder_level)

<inventory>
hammerfest_inventories(hammerfest_server, hammerfest_user_id; item_counts);

<forumTheme>
hammerfest_forum_theme_counts(hammerfest_server, hammerfest_theme_id; page_count, sticky_thread_count)
hammerfest_forum_theme_regular_thread_lists(hammerfest_server, hammerfest_theme_id, page; regular_thread_count)
# Thread meta only found in the theme page
hammerfest_forum_thread_theme_meta(hammerfest_server, hammerfest_thread_id, page, is_sticky, offset_in_list; latest_message_at, author_, reply_count)

<forumTheme + forumThread>
# Thread meta found both in the thread list and thread itself
hammerfest_forum_thread_shared_meta(hammerfest_server, hammerfest_thread_id; title, is_closed, page_count)

<forumTheme + forumThread>
hammerfest_forum_roles(hammerfest_server, hammerfest_user_id; role)

<forumThread>
hammerfest_forum_thread_page_counts(hammerfest_server, hammerfest_thread_id, page; message_count)
hammerfest_forum_messages(hammerfest_server, hammerfest_thread_id, page, offset_in_list; author, posted_at, remote_html_body)

<forumThread(moderator)>
hammerfest_forum_message_ids(hammerfest_server, hammerfest_thread_id, page, offset_in_list; hammerfest_message_id)

<forumThread>
hammerfest_best_season_ranks(hammerfest_server, hammerfest_user_id; best_season_rank)

Dependencies

~62MB
~1M SLoC