CanDoItAll.IPFS.Engine 0.1.18

dotnet add package CanDoItAll.IPFS.Engine --version 0.1.18
                    
NuGet\Install-Package CanDoItAll.IPFS.Engine -Version 0.1.18
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CanDoItAll.IPFS.Engine" Version="0.1.18" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CanDoItAll.IPFS.Engine" Version="0.1.18" />
                    
Directory.Packages.props
<PackageReference Include="CanDoItAll.IPFS.Engine" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CanDoItAll.IPFS.Engine --version 0.1.18
                    
#r "nuget: CanDoItAll.IPFS.Engine, 0.1.18"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CanDoItAll.IPFS.Engine@0.1.18
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CanDoItAll.IPFS.Engine&version=0.1.18
                    
Install as a Cake Addin
#tool nuget:?package=CanDoItAll.IPFS.Engine&version=0.1.18
                    
Install as a Cake Tool

CanDoItAll.IPFS

Validation Client version Client downloads Engine version Engine downloads .NET 10 License

CanDoItAll.IPFS provides an embedded IPFS engine, reusable IPFS contracts, a typed .NET client, and a Blazor node-control application for operating a local or remote node.

Ownership

This repository owns:

  • the reusable CanDoItAll.IPFS.Client, CanDoItAll.IPFS.Core, and CanDoItAll.IPFS.Engine packages;
  • the maintained embedded IPFS engine and its HTTP API;
  • the NodeControl application and its repository-specific Docker and release tooling.

This repository does not own:

  • the IPFS protocol specification or public IPFS network;
  • the CanDoItAll.Components.* packages, which are consumed from nuget.org;
  • cross-repository standards and orchestration, which are maintained in CanDoItAll.SharedInfo.

Projects And Packages

Project or package Purpose
src/CanDoItAll.IPFS.Client Consumer-facing typed HTTP client for an IPFS node
src/CanDoItAll.IPFS.Core Shared IPFS contracts and value types
src/CanDoItAll.IPFS.Engine Embedded IPFS node and HTTP API
src/CanDoItAll.IPFS.NodeControl.Abstractions UI-neutral NodeControl contracts and models
src/CanDoItAll.IPFS.NodeControl Desktop-oriented Blazor node-control application
tests/CanDoItAll.IPFS.Client.Tests Isolated Client/Core transport and contract tests
tests/CanDoItAll.IPFS.Tests Unit, integration, contract, and UI-facing tests

Install the public packages directly from nuget.org:

dotnet add package CanDoItAll.IPFS.Client
dotnet add package CanDoItAll.IPFS.Core
dotnet add package CanDoItAll.IPFS.Engine

Requirements

  • .NET SDK 10.0.302, with compatible patch roll-forward as pinned by global.json.
  • Access to nuget.org for package restore.
  • Docker Desktop or a compatible Docker Engine for container validation and local container workflows.

Build And Test

Run from the repository root:

dotnet restore .\CanDoItAll.IPFS.slnx --configfile .\NuGet.config
dotnet build .\CanDoItAll.IPFS.slnx --configuration Release --no-restore
dotnet test .\CanDoItAll.IPFS.slnx --configuration Release --no-build

Run NodeControl

Set a development passphrase and node repository path in the shell that starts the app:

$env:IPFS_PASS = "Choose-A-Strong-Local-Passphrase"
$env:IPFS_PATH = "C:\ipfs-data\local-node"
dotnet run --project .\src\CanDoItAll.IPFS.NodeControl\CanDoItAll.IPFS.NodeControl.csproj --framework net10.0

The control app can connect to a configured remote endpoint or start the local engine when the configured target resolves to this machine and no node is listening. On Windows, use --framework net10.0-windows to run the desktop/tray variant.

Important configuration:

  • IPFS_PASS unlocks the local engine repository.
  • IPFS_PATH selects the local node repository path.
  • IPFS_NODE_API_URL overrides the engine API bind URL.
  • src/CanDoItAll.IPFS.NodeControl/appsettings.json contains NodeControl defaults.

Containers

The canonical Compose model is a loopback-only local development stack:

Copy-Item .env.example .env
# Replace the placeholder IPFS_PASS in the ignored .env file.
docker compose --env-file .env config --quiet
docker compose --env-file .env up -d --build --wait --wait-timeout 120
docker compose --env-file .env down

Default endpoints:

  • NodeControl UI: http://127.0.0.1:5093
  • IPFS node API: http://127.0.0.1:5001
  • IPFS gateway: http://127.0.0.1:5001/ipfs/{cid}

Normal teardown preserves named volumes. Destructive volume reset is intentionally not part of the normal workflow. See container operations and backup and restore.

After the .NET unit tests and container smoke validation pass, pushes to main publish commit-tagged Linux images to GitHub Container Registry:

  • ghcr.io/fyziktom/candoitall-ipfs-node:sha-<commit>
  • ghcr.io/fyziktom/candoitall-ipfs-node-control:sha-<commit>

Tags named v<version> additionally publish the immutable semantic version tag.

Documentation

Packaging And Releases

Preview or produce all public NuGet packages through the repository-owned entry point:

.\tools\deployment\nugets\Build-NuGets.ps1 -WhatIf
.\tools\deployment\nugets\Build-NuGets.ps1 `
    -Configuration Release `
    -Version 0.1.15 `
    -OutputDirectory .\artifacts\packages

The command restores, builds, tests, and packs without publishing. Publishing to a package source is a separate, explicitly authorized operation.

Build standalone NodeControl/engine release bundles with:

.\tools\deployment\Build-Release.ps1 -WhatIf
.\tools\deployment\Build-Release.ps1

Acknowledgements

CanDoItAll.IPFS is developed and maintained by fyziktom. It builds on Richard Schneider's original net-ipfs-engine, net-ipfs-core, and net-ipfs-http-client projects. Many thanks to Richard Schneider and the upstream contributors for making that foundation available.

Since that foundation, this repository has been substantially extended and modernized across the protocol libraries, embedded engine, typed HTTP client, NodeControl UI, security, tests, packaging, and container deployment. Development continues here as the independently maintained CanDoItAll IPFS implementation.

License And Contributions

This repository uses the MIT License. The current work is copyright (c) 2026 fyziktom; Richard Schneider's original 2018 copyright notice is retained for the upstream foundation. Additional copied-source attribution is recorded in THIRD-PARTY-NOTICES.md.

Code contributions are limited to partners explicitly approved by the maintainer. Unsolicited pull requests are not accepted. See CONTRIBUTING.md and contact the fyziktom account on LinkedIn before preparing or opening a pull request.

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.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.18 36 7/31/2026
0.1.17 35 7/30/2026
0.1.16 90 7/26/2026