Faket 0.1.0

dotnet tool install --global Faket --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Faket --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Faket&version=0.1.0
                    
nuke :add-package Faket --version 0.1.0
                    

Faket

A modern .NET 10 fork of Paket — a dependency manager for .NET with support for NuGet packages and git repositories.

What's different in Faket

Faket tracks upstream Paket but modernizes the codebase and adds a few capabilities:

  • .NET 10 only. Dropped net461/netstandard2.0/netcoreapp2.1, the C# bootstrapper, ILRepack assembly merging and mono support. One clean net10.0 target.
  • System.Text.Json instead of Newtonsoft.Json.
  • Reproducible (Nix-friendly) lock files. faket hash writes per-package content hashes (sha512: …) into paket.lock. The hashes match NuGet's authoritative .nupkg.sha512, so tools like Nix can pin packages reproducibly.
  • The CLI command is faket (the package id is Faket).

Internals keep the Paket.* namespaces so upstream fixes remain easy to merge. Everything below is inherited Paket documentation; substitute faket for paket on the command line.

Why Paket?

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.

Online resources

Troubleshooting and support

Quick contributing guide

  • Fork and clone locally.
  • Build the solution with Visual Studio, build.cmd or build.sh.
  • Create a topic specific branch in git. Add a nice feature in the code. Do not forget to add tests and/or docs.
  • Run build.cmd (build.sh on Mono) to make sure all tests are still passing.
  • When built, you'll find the binaries in ./bin which you can then test with locally, to ensure the bug or feature has been successfully implemented.
  • Send a Pull Request.

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.

License

The MIT license

Maintainer(s)

The default maintainer account for projects under "fsprojects" is @fsprojectsgit - F# Community Project Incubation Space (repo management)

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.1.0 89 6/29/2026