OwlCore.Kubo 0.15.1

dotnet add package OwlCore.Kubo --version 0.15.1
NuGet\Install-Package OwlCore.Kubo -Version 0.15.1
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="OwlCore.Kubo" Version="0.15.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add OwlCore.Kubo --version 0.15.1
#r "nuget: OwlCore.Kubo, 0.15.1"
#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.
// Install OwlCore.Kubo as a Cake Addin
#addin nuget:?package=OwlCore.Kubo&version=0.15.1

// Install OwlCore.Kubo as a Cake Tool
#tool nuget:?package=OwlCore.Kubo&version=0.15.1

An essential toolkit for Kubo, IPFS and the distributed web.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos 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 (2)

Showing the top 2 popular GitHub repositories that depend on OwlCore.Kubo:

Repository Stars
yoshiask/FluentStore
A unifying frontend for Windows app stores and package managers
Arlodotexe/strix-music
Combine any music sources into a single library. It's your music. Play it your way.
Version Downloads Last updated
0.15.1 143 1/25/2024
0.15.0 67 1/24/2024
0.14.3 103 1/13/2024
0.14.2 81 1/12/2024
0.14.1 240 12/17/2023
0.14.0 155 11/15/2023
0.13.2 119 11/14/2023
0.13.1 96 11/14/2023
0.13.0 116 11/14/2023
0.12.5 254 5/13/2023
0.12.4 169 5/10/2023
0.12.3 86 5/9/2023
0.12.2 79 5/9/2023
0.12.1 98 5/7/2023
0.12.0 89 5/7/2023
0.11.3 188 5/3/2023
0.11.2 271 3/29/2023
0.11.1 290 2/28/2023
0.11.0 263 2/28/2023
0.10.2 259 2/23/2023
0.10.1 270 2/22/2023
0.10.0 265 2/22/2023
0.9.9 281 2/8/2023
0.9.8 289 2/8/2023
0.9.7 376 12/25/2022
0.9.6 329 12/23/2022
0.9.5 453 10/21/2022
0.9.4 442 10/21/2022
0.9.3 437 10/21/2022
0.9.2 457 10/8/2022
0.9.1 441 10/7/2022
0.9.0 428 10/7/2022
0.8.2 401 10/7/2022
0.8.1 442 10/4/2022
0.8.0 438 10/4/2022
0.7.0 434 10/4/2022
0.6.0 507 9/28/2022
0.5.1 429 9/27/2022
0.5.0 418 9/27/2022
0.4.0 422 9/27/2022
0.3.0 419 9/6/2022
0.2.1 424 9/6/2022
0.2.0 442 9/6/2022
0.1.4 443 9/5/2022
0.1.3 422 9/5/2022
0.1.2 456 9/4/2022
0.1.1 428 9/2/2022
0.0.0 434 9/2/2022

--- 0.15.1 ---
[Fixes]
Fixed an issue where MfsFolder would throw StackOverflowException when calling GetParentAsync on a folder two or more subdirectories in. Added tests.
Fixed an issue where KuboBootstrapper would fail to set binary permissions on Linux when BinaryWorkingFolder had a space in it.

--- 0.15.0 ---
[Fixes][Breaking]
Inherited Key Api fixes and breaking changes from IpfsShipyard.Ipfs.Core and IpfsShipyard.Ipfs.Http.Client 0.1.0.

--- 0.14.3 ---
[Fixed]
Fixed KuboBootstrapper failing to start when the repo path contains a space.

--- 0.14.2 ---
[Improvements]
Added Client property to KuboBootstrapper.

--- 0.14.1 ---
[Fixed]
Replaced usage of thread-problematic (obsolete) DataStream property in IpfsFile.
Fix KuboBootstrapper on linux, updated OwlCore.Storage.SharpCompress.
Bump IpfsShipyard.Ipfs.Http.Client, fixes to KeyApi

[Improvements]
Expose SearchArchiveForKuboBinaryAsync as public in KuboDownloader.
In the OwlCore.Storage implementation for Ipfs, Ipns and Mfs, members that return or yield storage instances are now virtual. Allows for creating custom implementations that return custom implementations.

--- 0.14.0 ---
[Fixed]
In KuboBootstrapper, calling Stop now gracefully shuts down the Kubo node by invoking the `ipfs shutdown` command and stopping the process, instead of killing it outright.

[Improvements]
In KuboDownloader, GetBinaryVersionAsync and GetLatestBinaryAsync now have overloads for both HttpClient and IpfsClient.
In KuboDownloader, GetBinaryVersionAsync and GetLatestBinaryAsync now crawls compressed archives directly from Http/Ipfs, returning an IFile of the Kubo binary without downloading and extracting to disk.
The streams opened by IpfsFile and IpnsFile are now seekable.
The streams opened by IpfsFile and IpnsFile now supply an accurate stream Length based on the Size given by Kubo.

[Breaking]
The KuboDownloader class is now static.
In KuboDownloader, the DownloadLatestBinaryAsync method has been replaced with GetLatestBinaryAsync.
In KuboDownloader, the DownloadBinaryAsync method has been replaced with GetBinaryVersionAsync.
In KuboDownloader, the return type on GetLatestKuboVersionAsync was changed. This method now returns a Version, without the tuple and RawVersion.
In KuboDownloader, the method parameters of GetLatestKuboVersionAsync were changed. This method now takes any `IFile` pointing to a versions file, rather than a url pointing to the default versions file on http.
In KuboBootstrapper, the constructor now takes the repoPath first for all constructors.
In KuboBootstrapper, the IFile previous provided in the constructor has been replaced with an optional file delegate.
In KuboBootstrapper, if the binary isn't in the BinaryWorkingFolder, it will be retrieved using the file delegate provided in the constructor. If no delegate is provided, the latest version will be retrieved via Http.
In KuboBootstrapper, ApplySettingsAsync is now ApplySettings, and is no longer async.
In KuboBootstrapper, the Kubo binary is now copied directly to the given BinaryWorkingFolder, instead of making a subfolder. The default location is still the system temp folder.

--- 0.13.2 ---
[Fixed]
Fixed an issue with KuboBootstrapper not starting on Linux (caused by warning-based stderr used by newer versions of Kubo).

[Improvements]
Added support for net7.0

--- 0.13.1 ---
[Fixed]
Fixed an issue with KuboBootstrapper not starting on Linux.

--- 0.13.0 ---
[New]
Added IGetCid and StorableKuboExtensions.GetCidAsync() for easier content comparison. Enables returning the CID for any IStorable item, falling back to stream hashing for files when IGetCid isn't implemented.
Added GenericKuboExtensions.GetCidAsync(object) extension method, a shorthand for ipfsClient.Dag.PutAsync(JObject) with pinning disabled.
All OwlCore.Storage implementations for Kubo now implement GetCidAsync() and call Kubo directly (IpfsFile, IpfsFolder, IpnsFile, IpnsFolder, MfsFile, MfsFolder).
Added ContentAddressedSystemFile and ContentAddressedSystemFolder, enabling a fastpath when the GetCidAsync() extension method is called on SystemFolder or SystemFile.

[Improvements]
All Kubo-based OwlCore.Storage implementations now consistently expose the IpfsClient it uses as a public property Client.
Codebase uses IDelegable{T} instead of IDelegatable{T}. Functionally, no change - IDelegatable{T} inherits from IDelegable{T} to smooth the migration process. IDelegatable is spelled incorrectly and marked obsolete.

--- 0.12.5 ---
[Fixes]
Updated transient dependency on OwlCore.Storage to latest verison. Fixes some issues with starting the KuboBootstrapper.

--- 0.12.4 ---
[Fixes]
Downgraded System.Text.Json from prerelease to latest stable.
Downgraded Microsoft.Bcl.AsyncInterfaces from prerelease to latest stable.
     
--- 0.12.3 ---
[Fixes]
Fixed an issue in MfsStream.WriteAsync where the length adjustment when writing past the end of the stream was calculated incorrectly.

--- 0.12.2 ---
[Fixes]
Fixed an issue that prevented MfsStream.ReadAsync from reading the requested byte count. Reading file content from Mfs is now much faster.

--- 0.12.1 ---
[Fixes]
Fixed an issue where MfsFolder.CreateFolderAsync would throw when the folder exists, instead of returning the existing folder.

--- 0.12.0 ---
[Breaking]
Inherited breaking changes from transient dependencies.

[Improvements]
Updated all dependencies to latest version.

--- 0.11.3 ---
[Fixes]
Fixed an issue where MfsStream would throw when writing due to a potentially malformed path.

--- 0.11.2 ---
[Fixes]
Fixed an issue where KuboBootstrapper would throw when initializing if a warning was output to the error stream.

--- 0.11.1 ---
[Fixes]
Fixed an issue where KuboBootstrapper would throw when initializing a non-empty repo.

--- 0.11.0 ---
[New]
Added KuboBootstrapper.GatewayUri to specify the address the gateway should be hosted.
Added KuboBootstrapper.RoutingMode to swap between the full DHT and the client DHT before starting the node.
Added KuboBootstrapper.StartupProfiles. These will be applied before starting the node.
Added KuboBootstrapper.BinaryWorkingFolder. This is the folder where Kubo is copied to before being run and can be changed to a custom location.

[Fixes]
Fixed an issue where KuboBootstrapper.StartAsync would not throw when the process failed to start.

--- 0.10.2 ---
[Fixes]
Fixed IpnsFile not providing the correct name.

--- 0.10.1 ---
[Fixes]
Inherited fixes from OwlCore.Storage 0.8.2.

--- 0.10.0 ---
[Breaking]
Inherited breaking changes from OwlCore.Storage 0.8.0.

--- 0.9.9 ---
[Improvement]
Updated transitive dependencies to latest version.

[Fixed]
Fixed an issue where the KuboBoostrapper wouldn't start.
Inherited a fix from IpfsShipyard.Ipfs.Core where retrieving peer information would crash due to missing support for webtransport and certhash.

--- 0.9.8 ---
[Improvement]
Updated transitive dependencies to latest version.

[Fixed]
Inherited a fix from IpfsShipyard.Ipfs.Core where retrieving peer information would crash due to missing quic-v1 support.

--- 0.9.7 ---
[Improvements]
KuboBootstrapper now copies to the same temp folder every time, opening the file if it already exists.
KuboBootstrapper now uses the --repo-dir CLI argument instead of the IPFS_PATH environment variable.
Updated dependent packages to latest version.

--- 0.9.6 ---
[Fixed]
Fixed an issue where KuboBootstrapper would crash on machines with the IPFS_PATH environment variable set.
Renamed FindLatestVersion to GetLatestKuboVersionAsync, made public and non-static.

--- 0.9.5 ---
[Fixed]
Fixed duplicate CollectionChanged invocation for TimerBasedMfsWatcher

--- 0.9.4 ---
[Fixed]
Fixed an issue where TimerBasedMfsWatcher wasn't reading from Mfs correct to check for changes

[Improvements]
MfsFolder.GetItemsAsync now passes the cancelation token to the deserializer.
Added unit tests for TimerBasedMfsWatcher.

--- 0.9.3 ---
[Fixed]
When modifying PeerRoom.ConnectedPeers, always wait for execution of the fire-and-forget method SyncronizationContext.Post to complete.
Fixed timer-based file watchers throwing on construction.

--- 0.9.2 ---
[Improvement]
PeerRoom.ConnectedPeers now always raises the CollectionChanged event on the original synchronization context.

--- 0.9.1 ---
[Improvement]
Added more unit tests around PeerRoom.

[Fixed]
Fixed an issue where PeerRoom wouldn't properly remove peers with expired heartbeats
Fixed an issue where PeerRoom would handle and emit messages from the current peer.

--- 0.9.0 ---
[Improvement]
Added proper unit tests around PeerRoom.

[Fixed]
Fixed invalid default CID with PublishedMessage.Id.
Fixed various issues with PeerRoom.

[Breaking]
PeerRoom.BroadcastHeartbeat has been renamed to PeerRoom.BroadcastHeartbeatAsync.
PeerRoom.BroadcastMessageAsync has been renamed to PublishAsync.

--- 0.8.2 ---
[Fixed]
Fixed an issue where AesPasswordEncryptedPubSub would swallow incoming decrypted messages due to a silent error being thrown by the underlying library.

--- 0.8.1 ---
[Fixed]
Fixed an issue where PeerRoom would add duplicate peers to ConnectedPeers.

--- 0.8.0 ---
[New]
Added MessageReceived event to PeerRoom. Only messages from peers in the room will be emitted.
Added BroadcastMessageAsync to PeerRoom.

[Fixed]
Fixed an issue where PeerRoom heartbeat would be trigger more frequently than specified.

--- 0.7.0 ---
[New]
Added PeerRoom and PubSubPeerFilter.

--- 0.6.0 ---
[New]
Added AesPasswordEncryptedPubSub. Wrap around an instance of IPubSubApi and automatically encrypt/decrypt messages using a pre-shared passkey.

--- 0.5.1 ---
[Fixed]
Fixed an issue where Disposing an MfsStream would not flush the data, resulting in errors when a separate MfsStream to the same resource was opened.

--- 0.5.0 ---
[Improvements]
Updated to OwlCore 0.1.0. Removes a number of uneeded transient dependencies.

[Breaking]
All breaking changes from OwlCore 0.1.0 have been inherited. See release notes for OwlCore 0.1.0.

--- 0.4.0 ---
[New]
Added MfsFile and MfsFolder. MFS acts like a regular name-based filesystem. You can add, remove, move, and edit MFS files, but the actual content is on IPFS, and can be distributed like any other content on IPFS. MfsFolder is modifiable, so it can be hotswapped for SystemFolder, WindowsStorageFolder, etc. for the vast majority of use cases
Added MfsStream. This is a standard System.IO.Stream implementation that reads directly from a file in MFS.

[Fixed]
Fixed invalid NotifyCollectionChanged arguments that prevented TimerBasedIpnsWatcher from working.

[Breaking]
All folder watchers now reside in the namespace OwlCore.Kubo.FolderWatchers.
Renamed IpnsFolderTimerWatcher to TimerBasedIpnsWatcher.
Renamed IAddressableIpfsStorable to IChainedAddressableStorable.

--- 0.3.0 ---
[Breaking]
Inheriting breaking changes from OwlCore.Storage. See release notes for 0.5.0.

--- 0.2.1 ---
[New]
IpnsFolder now implements IMutableFolder. The folder watcher used is timer based, and periodically diffs the content.

--- 0.2.0 ---
[Breaking]
Inheriting breaking changes from OwlCore.Storage. See release notes for 0.4.0.

[New]
Added AddressableIpfsFile and AddressableIpfsFolder. Any item returned from a folder will now implement IAddressableStorage, allowing you to traverse back to the root folder.
Added IpnsFile and IpnsFolder, with properly transforming IDs during traversal. For example, you can start with a new IpnsFolder("/ipns/ipfs.tech"), and calling GetItemsAsync recursively could yield you with a file or folderwith an ID and path of "/ipns/ipfs.tech/some/really/deep/path/".

--- 0.1.4 ---
Fixed IpfsFolder.GetItemsAsync returning all items, regardless of the StorableType used.

--- 0.1.3 ---
Updated OwlCore.Storage dependency to the latest version.

--- 0.1.2 ---
[Improvements]
Updated packages. Removes various transitive dependencies.

--- 0.1.1 ---
[Fixed]
Fixed KuboBootstrapper failing to execute on Linux due to unset execute permission.

--- 0.1.0 ---
[New]
Added basic OwlCore.Storage implementations of IpfsFolder and IpfsFile.
Renamed KuboDownloader.DownloadBinaryAsync to KuboDownload.DownloadLatestBinaryAsync.
Added KuboDownloader.DownloadBinaryAsync, which takes a specific Version to install.

[Improvements]
Unit tests will now automatically use a local node when it's available, falling back to an embedded node if needed.

--- 0.0.0 ---
Initial release.

[New]
Added KuboBoostrapper.
Added KuboDownloader.
Added unit tests.