DataStore is the main component of a series of addons that serve as data repositories in game. Their respective purpose is to offer scanning and storing services to other addons.
The advantages of this approach are:
- data is scanned only once for all client addons (performance gain).
- data is stored only once for all client addons (memory gain).
- addon authors can spend more time coding higher level features.
- each module is an independant addon, and therefore has its own SavedVariables file, meaning that you could clean _Crafts without disturbing _Containers.
Scope : a note to contributing authors
The core of the database is based on my work in Altoholic, and is thus designed with multiple-account support in mind. If client addons want to store data from foreign accounts, the database will be ready for it. Nothing is final at this point though, feel free to contribute, as the concept can and will be perfected.
The scope of each addons is to provide common methods for client addons. For instance, DataStore_Crafts embeds LibPeriodicTable-3.1-Tradeskill allowing it to give more than just scanning & storing data. However, the goal is not to put _everything_ into these addons, they must be seen as an abstraction layer and a service provider, nothing more.
These libraries cannot and should not be embedded, as they all manage their respective SavedVariables.
- DataStore_Achievements : Achievements
- DataStore_Agenda : Calendar & Raid ID's
- DataStore_Auctions : Auctions & Bids
- DataStore_Characters : Base information about your characters
- DataStore_Containers : Bags, Bank and Guild Banks
- DataStore_Crafts : Tradeskills & Recipes
- DataStore_Currencies : Currencies
- DataStore_Garrisons : Garrisons
- DataStore_Inventory : Equipment
- DataStore_Mails : Mails
- DataStore_Pets : Companions & Mounts
- DataStore_Quests : Quest log
- DataStore_Reputations : Reputations
- DataStore_Spells : Spells
- DataStore_Stats : Character Statistics
- DataStore_Talents : Talent trees & Glyphs
Each module will exist as a separate addon, so that authors can package only the ones they want with their own project.
More modules will come later.