XBPS Library API  0.19
The X Binary Package System
The X Binary Package System Library API

Introduction

XBPS is a new binary package system designed and implemented from scratch, by Juan Romero Pardines. This document describes the API used by the XBPS Library, that is the base to implement a package manager frontend, such as is implemented in the xbps-bin(8) and xbps-repo(8) command line interfaces.

XBPS uses extensively NetBSD's proplib, a library that provides an abstract interface for creating and manipulating property lists. Property lists have object types for boolean values, opaque data, numbers, and strings. Structure is provided by the array and dictionary collection types. Property lists can be passed across protection boundaries by translating them to an external representation. This external representation is an XML document whose format is described by the following DTD:

http://www.apple.com/DTDs/PropertyList-1.0.dtd

NetBSD's proplib has been choosed because it's fast, extensible, and easy to use. These are the three facts I mentioned:

Not to mention that its arrays and dictionaries can be externalized to files (known as plists) and are always written atomically. You have the whole file or don't have it at all.