ankitects / ankitects/anki

Split rslib into smaller crates to speed up incremental builds

Open
#4,649 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
30.5k
Forks
3.2k
Avg merge
2d 8h
Merged PRs (30d)
72

Description

## Problem

The anki crate (rslib/) is a very large crate. Even a small change to any file in rslib/ forces a full recompilation of the entire crate, resulting in very long build times.

## Proposed Solution

Split rslib into smaller, feature-specific sub-crates (e.g. anki_scheduler, anki_search, anki_sync, anki_storage). This way only the sub-crate containing the changed file needs recompiling.

There is already a precedent for this in the form of rslib/i18n, rslib/proto subcrates.

Contributor guide

Open the contributing guide

Research direction

Start by examining the large anki crate in rslib/ and the existing rslib/i18n and rslib/proto subcrates as precedents. Identify feature-specific boundaries for smaller crates such as anki_scheduler, anki_search, anki_sync, and anki_storage; done means changes recompile only the affected sub-crate rather than all of rslib/.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.