| Crates.io | lectern |
| lib.rs | lectern |
| version | 0.0.2 |
| created_at | 2025-09-17 04:51:56.763519+00 |
| updated_at | 2025-10-06 19:10:54.194204+00 |
| description | Lightning-fast PHP Composer alternative written in Rust |
| homepage | |
| repository | https://github.com/zanderlewis/lectern |
| max_upload_size | |
| id | 1842765 |
| size | 366,492 |
Lectern is an async and concurrent rewrite of PHP's Composer package manager in Rust. Built with lots of help from ChatGPT-5 and Claude Sonnet 4[.5].
Lectern is not a complete replacement for Composer just yet! Some things I haven't been able to test (as AI wrote that code), or aren't of high priority.
Lectern significantly outperforms Composer across all common operations. Our benchmarks use hyperfine for accurate performance measurements with automatic cache warm-up and multiple test runs.
Performance Highlights:
To run the benchmarks yourself:
./bench.sh
This will:
BENCHMARK.mdRequirements:
cargo install hyperfine or your package managerSee BENCHMARK.md for the complete benchmark report with detailed timing information and statistical analysis.
$XDG_CACHE_HOME/lectern when the XDG environment is set, otherwise ~/.cache/lectern.rm -rf ~/.cache/lectern)..github/workflows/publish.yml.CRATES_IO_TOKEN (your crates.io API token) for publishing to work. The workflow uses this secret to run cargo publish.lectern installInstalls the dependencies listed in the composer.json file. Equivalent to composer install.
lectern updateUpdates the dependencies to the latest versions allowed by the composer.json file. Equivalent to composer update.
lectern check-outdatedChecks for outdated dependencies and displays the current and latest versions.
lectern search <package>Searches for a package on Packagist and displays relevant results.
lectern require <package>Adds a new dependency to the composer.json file and installs it.
lectern remove <package>Removes a dependency from the composer.json file and uninstalls it.
lectern show <package>Displays detailed information about a specific package.
lectern autoloadShows the autoloader setup.
lectern initInitializes a new project with a composer.json file.
lectern statusLists installed packages and their statuses.
lectern licensesDisplays the licenses of installed dependencies.
lectern validateValidates the composer.json file for correctness.
lectern create-project <package> [directory]Creates a new project from a package (similar to composer create-project).
lectern dump-autoloadRegenerates the autoloader files.
lectern run-script <script>Runs a script defined in composer.json.
lectern diagnoseDiagnoses the system to identify common problems.
lectern clear-cache [type]Clears Lectern's cache (types: all, repo, files).
lectern depends <package>Shows which packages depend on a given package (similar to composer why).
lectern prohibits <package>Shows which packages prevent installing a given package (similar to composer why-not).
lectern browse <package>Opens the package repository URL in your browser.
lectern suggestsShows all suggested packages from installed dependencies.
lectern fundShows funding information for installed packages.