Halyde Documentation

Powerful, modular, universal

User Tools

Site Tools


lib:solvitdb

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
lib/solvitdb.txt · Last modified: by wahplus