This page is a draft set of concrete requirements to guide development and testing of Tracker 3.0.


  • Provide real-time search results.
    • Target: any full-text search query completes in < 1 second.

  • Provide real-time lists of available local content.
    • Target: any list-files operation completes in < 1 second.

    • Changes to files on disk are reflected in the database within 1 second.
  • Index reasonable amounts of user content on a desktop system
    • Target: automated testing that Tracker behaves well with realistic collections of: music, videos, documents, and photos
    • Target: initial indexing completes within 10 minutes.
  • Be fast, secure and reliable enough to run in the background by default
    • Target: indexing cannot use more than 50% CPU, IO or free memory at
      • any time.
    • Target: index cannot use more than 10% of available disk space.
    • Target: indexing processes must be sandboxed to prevent unexpected
      • network access, disk writes, hardware access.
    • Robust against unexpected or untrusted inputs.
  • Responsible and trustworthy with user data:
    • It must be easy to control the locations Tracker indexes.
    • It must be easy to see all files that Tracker has indexed.
    • Untrusted apps must be isolated from all user data by default,
      • with user driven opt-ins for content that the app is allowed to see.

Non goals

  • Indexing of source code.
    • Use an IDE or a dedicated source code indexing tool for this.
  • Indexing very large content collections.
    • Stress testing should be done on collections of "reasonable" size. While we hope Tracker will be useful for as many users as possible, it's inevitable that performance will decrease as workload increases

SamThursfield/Draft/Projects/Tracker/Requirements (last edited 2019-11-04 21:15:29 by SamThursfield)