Outback 1.25.0
dotnet add package Outback --version 1.25.0
NuGet\Install-Package Outback -Version 1.25.0
<PackageReference Include="Outback" Version="1.25.0" />
<PackageVersion Include="Outback" Version="1.25.0" />
<PackageReference Include="Outback" />
paket add Outback --version 1.25.0
#r "nuget: Outback, 1.25.0"
#:package Outback@1.25.0
#addin nuget:?package=Outback&version=1.25.0
#tool nuget:?package=Outback&version=1.25.0
Outback 🐨
Notebook ready C# data science tools and utilities inspired by Python pandas module.
Outback is a .NET Standard 2.0 library that provides powerful extensions and utilities for C# development, particularly useful in Jupyter notebooks and data science scenarios. It includes string manipulation, file system helpers, text formatting builders, and more.
🚀 Features
📝 Text Building & Formatting
- TextTableBuilder - Create formatted tables with dynamic columns and styling
- TextListBuilder - Build formatted lists with customizable separators and indentation
- TextSectionBuilder - Create structured text sections with headers and content
- TextFieldSetBuilder - Format key-value pairs and field sets
🔧 Extension Methods
- String Extensions - Rich string manipulation (Before, After, Compress, Indent, etc.)
- DirectoryInfo Extensions - Enhanced directory operations and traversal
- FileInfo Extensions - Simplified file operations and metadata access
- LINQ Extensions - Additional LINQ operators for data processing
- Object Extensions - JSON serialization and utility methods
📁 File System Helpers
- DirectoryInfoHelper - Directory enumeration and ancestor traversal
- FileInfoHelper - File discovery and manipulation utilities
📦 Installation
Install the package via NuGet Package Manager:
dotnet add package Outback
Or via Package Manager Console:
Install-Package Outback
🛠️ Usage Examples
String Extensions
using Outback.Extensions;
string text = "Hello, World!";
string after = text.After("Hello, "); // "World!"
string before = text.Before(" World"); // "Hello,"
string indented = "Line 1\nLine 2".Indent(4);
// " Line 1\n Line 2"
Text Table Building
using Outback.Text;
var table = TextBuilder.Create()
.StartTable()
.AddColumn("Name", minWidth: 15)
.AddColumn("Age", minWidth: 5)
.AddColumn("City", minWidth: 10)
.AddDataRow("John Doe", 30, "New York")
.AddDataRow("Jane Smith", 25, "Los Angeles")
.AddDataRow("Bob Johnson", 35, "Chicago")
.EndTable()
.Render();
Console.WriteLine(table);
Directory Operations
using Outback;
using Outback.Extensions;
var directory = new DirectoryInfo(@"C:\MyProject");
// Get all ancestor directories
var ancestors = directory.Ancestors();
// Get files with extension methods
var csharpFiles = directory.Files("*.cs");
File System Helpers
using static Outback.DirectoryInfoHelper;
using static Outback.FileInfoHelper;
// Static helper methods
var projectDir = Directory(@"C:\MyProject");
var sourceFiles = Files(projectDir, "*.cs");
JSON Serialization
using Outback.Extensions;
var data = new { Name = "John", Age = 30 };
string json = data.ToJson();
// Pretty formatted JSON
string prettyJson = data.ToJson(writeIndented: true);
🎯 Target Framework
- .NET Standard 2.0 - Compatible with .NET Framework 4.6.1+, .NET Core 2.0+, and .NET 5+
- C# Language Version: Latest
🔧 Development
Prerequisites
- .NET 8.0 SDK
- Visual Studio 2022 or VS Code
Building the Project
# Clone the repository
git clone https://github.com/csim/Outback.git
cd Outback
# Restore dependencies
dotnet restore
# Build the solution
dotnet build
# Run tests
dotnet test
Project Structure
src/
├── Outback/ # Main library
│ ├── Extensions/ # Extension methods
│ ├── Text/ # Text building utilities
│ ├── DirectoryInfoHelper.cs # Directory operations
│ └── FileInfoHelper.cs # File operations
├── Outback.CommandLine/ # CLI application
└── Outback.Tests/ # Unit tests
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Inspired by the Python pandas library
- Built for the .NET community
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 was computed. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
| .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. |
-
.NETStandard 2.0
- System.Text.Json (>= 8.0.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.