OsLibCore 3.7.8
See the version list below for details.
dotnet add package OsLibCore --version 3.7.8
NuGet\Install-Package OsLibCore -Version 3.7.8
<PackageReference Include="OsLibCore" Version="3.7.8" />
<PackageVersion Include="OsLibCore" Version="3.7.8" />
<PackageReference Include="OsLibCore" />
paket add OsLibCore --version 3.7.8
#r "nuget: OsLibCore, 3.7.8"
#:package OsLibCore@3.7.8
#addin nuget:?package=OsLibCore&version=3.7.8
#tool nuget:?package=OsLibCore&version=3.7.8
OsLib
Handling of files, paths, temp/backup directories, and system calls.
formerly OsLibCore
3.7.8
- Current release line for
OsLibCoreis3.7.8. - Bug fixes in
RaiPath.mv()for thereplace/keepBackupcombinations. RaiPath.cp()is now fully implemented viaRaiPath.EnumerateFiles,RaiPath.EnumerateDirectories,RaiPath.mkdir(), andRaiFile.cp()— no directSystem.IOtraversal.- New
RaiPath.backup(bool copy = false)method, symmetrical toRaiFile.backup. WhenkeepBackup: true, bothRaiPath.mv()andRaiPath.cp()delegate to it instead of creating sibling_backup_<id>directories. - See RELEASE_NOTES_3.7.8.md for details.
namespace
OsLib
classes
<details> <summary>RaiSystem: Run external processes with structured output capture.</summary>
- RaiSystem:
Exec,ExecResult,Start,CreateScript</details>
<details> <summary>Script: Executable script file backed by TextFile and RaiSystem.</summary>
- Script: create a script file from content, save/update it, and apply Unix executable mode automatically. </details>
<details> <summary>EscapeMode: Defines escape modes for path and parameter handling.</summary>
- EscapeMode </details>
<details> <summary>OsType: Identifies the OS type.</summary>
- OsType </details>
<details> <summary>Os: Platform helpers, lazy config access, diagnostics, and path normalization.</summary>
- Os:
UserHomeDir,AppRootDir,TempDir,LocalBackupDir,Config,IsConfigLoaded,DefaultConfigFileLocation,Escape,NormPath,NormSeperator</details>
<details>
<summary>CloudPathWiring: Initializes the RaiPath.CloudEvaluator delegate from Os.Config.</summary>
- CloudPathWiring:
Initialize</details>
<details> <summary>RaiPath: Directory path type with buffered cloud classification.</summary>
- RaiPath:
Path,Cloud,CloudEvaluator,/operator,Parent,mkdir,rmdir,mv,cp,backup,EnumerateFiles,EnumerateDirectories</details>
<details> <summary>RaiFile: File utility with cloud-aware wait behavior.</summary>
- RaiFile:
Exists,rm,mv,cp,mkdir,rmdir,AwaitVanishing,AwaitMaterializing,BackdateCreationTime,DefaultSyncPropagationDelayMs,Zip,backup</details>
<details> <summary>RaiFileExtensions: Convenience extensions for string and CSV handling.</summary>
- RaiFileExtensions:
MakePolicyCompliant,Singularize,CreateDictionariesFromCsvLines</details>
<details> <summary>TextFile, CsvFile, TmpFile: Text/data-file helpers built on RaiFile.</summary>
- TextFile:
Read,Save,Append,Delete - CsvFile:
Read,Objects,ToJsonFile - TmpFile:
create</details>
<details> <summary>CanonicalPath, CanonicalFile, and path conventions: retained compatibility helpers.</summary>
- CanonicalPath: deprecated legacy type retained for compatibility; prefer direct
RaiPathcomposition. - PathConventionType / IPathConventionFile: convention-aware file contracts. </details>
<details> <summary>SshSystem and CLI wrappers: remote shell execution and typed command launchers.</summary>
- SshSystem:
ExecuteRemoteCommand,ExecuteScript,ReadRemoteConfigJson5 - CliCommand:
IsAvailable,TryResolveExecutable,Run,RunAsync,GetInstallCommand,GetUpdateCommand - Built-in wrappers:
CurlCommand,ZipCommand,SevenZipCommand,RCloneCommand</details>
nuget
https://www.nuget.org/packages/OsLibCore/
diagram
- Source: RaiFile-Hierarchy.puml
- CLI render (if PlantUML is installed):
plantuml RaiFile-Hierarchy.puml - VS Code: open the
.pumlfile and use a PlantUML preview/render extension.
detailed api
- Foldable class and method-level documentation: API.md
- Current cloud configuration and buffered cloud-path behavior: CLOUD_STORAGE_DISCOVERY.md
- Historical path/config/logging design note, now marked with 3.7.7 caveats: PATH_CONFIG_LOGGING_REFACTOR.md
- CLI command hierarchy and external tool wrappers: ../CliCommand-Hierarchy.puml
- Local backup placement:
Os.LocalBackupDiris optional; when absent, backup features are disabled instead of falling back. - Structured logging: OsLib diagnostics use
ILogger<T>templates. The current config path falls back to a baselineTempDirmodel rather than treating missing config as a startup-fatal public API contract. - Cloud config guidance: prefer explicit
Cloud.*entries inRAIkeep.json5when you want stable cloud-backed path classification. - Metadata propagation guidance:
RaiFile.BackdateCreationTime(...)usesSyncPropagationDelayMsfrom config when no explicit delay is passed. - Script helper: use
RaiSystem.CreateScript(path, name, content)ornew Script(path, name, content)when tests or tools need an executable script file.
unit tests
- Local unit tests are in OsLib.Tests.
- Run from repository root:
dotnet test OsLib/OsLib.Tests/OsLib.Tests.csproj --nologo -v minimal
release notes
- Current release notes: RELEASE_NOTES_3.7.8.md
nuget publish automation
- GitHub Actions workflow:
.github/workflows/publish-nuget.yml - Trigger: push a version tag in format
v*(example:v3.7.8) - Safety check: workflow validates tag version equals
<Version>inOsLib.csproj - Required GitHub repository secret:
NUGET_API_KEY - Typical release command:
git tag -a v3.7.8 -m "v3.7.8" && git push origin v3.7.8
| Product | Versions 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. |
-
net10.0
- Microsoft.Extensions.Logging (>= 8.0.1)
- Newtonsoft.Json (>= 13.0.4)
- RunProcessAsTask (>= 1.2.4)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on OsLibCore:
| Package | Downloads |
|---|---|
|
JsonPit
Stores json files across servers (synchronized). |
|
|
RaiImage
Managing image files with meaningful elements in the image name and path. |
|
|
HDitem.Persist
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.8.7 | 38 | 5/16/2026 |
| 3.8.6 | 37 | 5/16/2026 |
| 3.8.5 | 33 | 5/16/2026 |
| 3.8.4 | 40 | 5/16/2026 |
| 3.8.3 | 41 | 5/16/2026 |
| 3.8.1 | 159 | 5/11/2026 |
| 3.8.0 | 123 | 5/10/2026 |
| 3.7.11 | 103 | 5/10/2026 |
| 3.7.10 | 86 | 5/10/2026 |
| 3.7.9 | 127 | 5/10/2026 |
| 3.7.8 | 113 | 5/5/2026 |
| 3.7.7 | 115 | 5/1/2026 |
| 3.7.6 | 119 | 4/16/2026 |
| 3.7.5 | 120 | 4/14/2026 |
| 3.7.2 | 269 | 3/29/2026 |
| 3.7.1 | 264 | 3/29/2026 |
| 3.6.1 | 365 | 3/27/2026 |
| 3.6.0 | 344 | 3/27/2026 |
| 3.5.5 | 352 | 3/27/2026 |
| 3.5.4 | 352 | 3/27/2026 |
3.7.8 patch: fixes RaiPath.mv() target-replacement bugs, completes RaiPath.cp() with RaiFile/RaiPath-only traversal, and adds a RaiPath.backup() method symmetrical to RaiFile.backup().