Architecture
lip manages the state of installed packages within a workspace.
Workspace State
Represents the current state of the workspace, tracking which packages are installed and how.
- Packages: The installed packages, recorded in the state file, which lip keeps in the workspace as
.lip/state.json. - Environment: The side (
serverorclient) and the platform (a .NET RID) of the workspace. See Environment.
Configuration
Manages global configuration settings for the lip tool itself, such as proxies and default behaviors.
- Properties: Key-value pairs for configuration options (e.g.,
github_proxy).
Package Sources
A package is an archive with a lip.toml at its root. See lip.toml.
- git repositories: A package id such as
github.com/user/repois the git repositoryhttps://github.com/user/repo.git, read with lip's built-in git smart-HTTP (protocol version 2) client; thegitcommand-line tool is not required. There is no central registry: the versions are the repository'sv<semver>tags, and a git ref (@branch:,@tag:,@rev:) picks one commit instead. - URLs: ZIP archives downloaded over HTTPS.
- Local files and directories: ZIP files and directories with a
lip.tomlat their root, given tolip installby path. - Cache: Stores HTTP(S) downloads by the SHA-256 of their URL (
http-<hash>). Git archives are not cached.
See Internal Mechanism for details.