Table of Contents
SolvitDB library
The solvitdb library is a part of lib:solvit and it is the part that can read and modify .svt (Solvit Database) files.
Solvit Database format
bleh
Specification
4 bytes - length of the PAT (little endian uint32)
4 bytes - RTFM magic bytes
PAT
For each package:
n bytes - package name
1 byte - .
4 bytes - package data start location (not including the length of the PAT or other things at the start) (little endian uint32)
1 byte - ;
Package data
For each package:
1 byte - package type (P - package, G - group, V - virtual package)
n bytes - one or multiple series (described below)
1 byte - newline, package data end marker
Series
There can be multiple series in the data for one package. Described below will be one single series, however they can be chained without any additional separators.
1 byte - series type (d - dependencies, D - reverse dependencies, c - conflicts, p - packages (if it is a group or vpackage))
For each item:
n bytes - item name
1 byte - series separator, ; unless it is the last item in the series, in which case it is .
Notable design features
- Compact
- Readable without loading the entire file (which can get pretty big) into RAM
