A dependency manager for .NET with support for NuGet packages and Git repositories.
2,085
stars
12,792
commits
F#
primary language
Sep 14, 2026
updated
A dependency manager for .NET with support for NuGet packages and git repositories.
NuGet did not separate out the concept of transitive dependencies. If you install a package into your project and that package has further dependencies then all transitive packages are included in the packages.config. There is no way to tell which packages are only transitive dependencies.
Even more importantly: If two packages reference conflicting versions of a package, NuGet will silently take the latest version (read more). You have no control over this process.
Paket on the other hand maintains this information on a consistent and stable basis within the paket.lock file in the solution root.
This file, together with the paket.dependencies file enables you to determine exactly what's happening with your dependencies.
Paket also enables you to reference files directly from git repositories or any http-resource.
For more reasons see the FAQ.
build.cmd or build.sh.build.cmd (build.sh on Linux/macOS) to make sure all tests are still
passing../bin which you can then test
with locally, to ensure the bug or feature has been successfully implemented.If you want to contribute to the docs then please modify the markdown files in /docs/content and send a pull request.
Note, that short description and syntax for each command is generated automatically from the Paket.Commands module.
The MIT license
The default maintainer account for projects under "fsprojects" is @fsprojectsgit - F# Community Project Incubation Space (repo management)
(top 30 of 279)
F#
88.4%
C#
9.9%
Shell
1.6%
A dependency manager for .NET with support for NuGet packages and Git repositories.
2,085
stars
12,792
commits
F#
primary language
Sep 14, 2026
updated
A dependency manager for .NET with support for NuGet packages and git repositories.
NuGet did not separate out the concept of transitive dependencies. If you install a package into your project and that package has further dependencies then all transitive packages are included in the packages.config. There is no way to tell which packages are only transitive dependencies.
Even more importantly: If two packages reference conflicting versions of a package, NuGet will silently take the latest version (read more). You have no control over this process.
Paket on the other hand maintains this information on a consistent and stable basis within the paket.lock file in the solution root.
This file, together with the paket.dependencies file enables you to determine exactly what's happening with your dependencies.
Paket also enables you to reference files directly from git repositories or any http-resource.
For more reasons see the FAQ.
build.cmd or build.sh.build.cmd (build.sh on Linux/macOS) to make sure all tests are still
passing../bin which you can then test
with locally, to ensure the bug or feature has been successfully implemented.If you want to contribute to the docs then please modify the markdown files in /docs/content and send a pull request.
Note, that short description and syntax for each command is generated automatically from the Paket.Commands module.
The MIT license
The default maintainer account for projects under "fsprojects" is @fsprojectsgit - F# Community Project Incubation Space (repo management)
(top 30 of 279)
F#
88.4%
C#
9.9%
Shell
1.6%