KustoLoco.FileFormats 1.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package KustoLoco.FileFormats --version 1.0.1
NuGet\Install-Package KustoLoco.FileFormats -Version 1.0.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="KustoLoco.FileFormats" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add KustoLoco.FileFormats --version 1.0.1
#r "nuget: KustoLoco.FileFormats, 1.0.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 KustoLoco.FileFormats as a Cake Addin
#addin nuget:?package=KustoLoco.FileFormats&version=1.0.1

// Install KustoLoco.FileFormats as a Cake Tool
#tool nuget:?package=KustoLoco.FileFormats&version=1.0.1

Kusto-Loco

Kusto-Loco is a set of libraries and applications based around the Kusto Query Language (KQL). KQL is normally used against data held in Azure Data Explorer but Kusto-Loco allows you to query in-memory data held in your own applications.

For a super-quick introduction to KQL see this wiki page but to give you a flavour here's a simple query that calculates the average rating of all PCs in a product table and renders the results as a chart.

products 
| where Category=='PC' 
| join reviews on ProductId 
| summarize Rating=avg(Score) by ProductId,ProductName 
| order by Rating
| project ProductName, Rating
| render columnchart

Kusto-Loco makes it easy to load data from CSV, JSON or Parquet files or from sets of POCOs held in memory. Query results can be serialised back to files or objects or rendered to HTML charts using the Vega-Lite charting library.

Loading data, running a query and rendering the results to a chart can be done in a few lines of code after referencing the appropriate Nuget Packages.

var context = new KustoQueryContext()
                  .CopyDataIntoTable("products", productRows); // load data from a set of POCOs
var result = await context.RunQuery("products | summarize count() by Category | render piechart");

var datatable = result.ToDataTable(); // create a datatable to dump into a datagrid
webview.NavigateToString(KustoResultRenderer.RenderToHtml(result)); //render chart

If you just want to get started playing around with KQL on your own file-based data you can use the supplied LokqlDX application. image

Kusto-Loco even comes with a Powershell module that allows you use KQL queries in a Powershell pipeline.

image

Quick Starts

Status

The current version is 1.0.1. The project is still in active development and core APIs may change. However, the core engine is stable and and is actively used in a production environment. Some KQL operators and functions are not yet implemented.

Credits and Contributors

KustoLoco is a fork of the BabyKusto engine created by DavidNx,Vicky Li and David Nissimoff who appear to have developed the core engine as part of a Microsoft Hackathon.

Since then the engine has been heavily extended and optimised by NeilMacMullen with additional contributions from Vartika Gupta and Kosta Demoore.

The project leans heavily on a number of open source libraries including:

Contibuting

If you'd like to help with the project please see the Contributing page.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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. 
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
1.0.2 79 5/19/2024
1.0.1 80 5/6/2024