fastsandpm Documentation


An RTL Design and DV package manager for python tools. Manage your RTL and design verification library dependencies by cloning, updating, and version-controlling git repositories.

Key Features

  • Library Management: Clone and update RTL/DV libraries from git repositories

  • Version Pinning: Pin libraries to specific tags, branches, or commits

  • Version Ranges: Specify flexible version constraints (e.g., >=1.0.0,<2.0.0)

  • TOML Configuration: Organize libraries in configuration files with sub-headings

  • Local Development: Symlink local directories for development workflows

  • Multi-Remote Support: Automatically discover repositories across configured remotes

Quick Start

Installation:

# For UV Based projects
uv add fastsandpm

# For pip-based projects
pip install fastsandpm

Command Line Usage:

The simplest way to use FastSandPM is via the fspm command:

# Install dependencies from proj.toml in current or parent directory
fspm

# Install to a custom directory
fspm --output ./vendor

# Install with optional dependency groups
fspm --optional dev,test

See Command Line Interface for the complete CLI reference.

Python API Usage:

>>> import pathlib
>>> import fastsandpm
>>> manifest = fastsandpm.get_manifest("./my-project")
>>> print(manifest.package.name)
'my-package'
>>> resolved = fastsandpm.dependencies.resolve(manifest)
>>> print(type(resolved))
<class 'dict'>
>>> fastsandpm.build_library(resolved, pathlib.Path("my-library"))

This will bring in the library dependencies for a project into the specified directory. Additionally, a library.f file will be created which will point to the dependencies file list in the required order.

For more examples, see the Library User Guide.

User Information

Package Manifest Reference

How the manifest is to be structured.

Library User Guide

How to use fastsandpm in a different python project.

Developer Information

Contributing

Guide for contributing to fastsandpm

Changelog

List of changes made to fastsandpm

API

fastsandpm

A package management and dependency resolution tool for HDL Design and DV projects.