MSDMarkwort.Kicad.Parser.Base 0.1.11

dotnet add package MSDMarkwort.Kicad.Parser.Base --version 0.1.11
                    
NuGet\Install-Package MSDMarkwort.Kicad.Parser.Base -Version 0.1.11
                    
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="MSDMarkwort.Kicad.Parser.Base" Version="0.1.11" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MSDMarkwort.Kicad.Parser.Base" Version="0.1.11" />
                    
Directory.Packages.props
<PackageReference Include="MSDMarkwort.Kicad.Parser.Base" />
                    
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 MSDMarkwort.Kicad.Parser.Base --version 0.1.11
                    
#r "nuget: MSDMarkwort.Kicad.Parser.Base, 0.1.11"
                    
#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 MSDMarkwort.Kicad.Parser.Base@0.1.11
                    
#: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=MSDMarkwort.Kicad.Parser.Base&version=0.1.11
                    
Install as a Cake Addin
#tool nuget:?package=MSDMarkwort.Kicad.Parser.Base&version=0.1.11
                    
Install as a Cake Tool

KICAD File Parser (.NET 8.0 based)

Simple .NET based parser for KICAD files. Currently supported formats are:

  • project
  • pcbnew
  • kicad_mod
  • fp-lib-table
  • eeschema
  • kicad_sym
  • sym-lib-table

How to use

Project

Add nuget package to your project:

dotnet add package MSDMarkwort.Kicad.Parser.Project

or via Visual Studio Package Manager.

Example with file on disk
var parser = new KicadProjectParser();
var parserResult = parser.Parse("myproject.kicad_pro");

if(parser.Success)
{
    var project = parser.Result;   
    
   //... 
}

Eeschema

Add nuget package to your project:

dotnet add package MSDMarkwort.Kicad.Parser.EESchema

or via Visual Studio Package Manager.

Example with file on disk
var parser = new EESchemaParser();
var parserResult = parser.Parse("myproject.kicad_sch");

if(parser.Success)
{
    var eeschema = parser.Result;
    var title = eeschema.TitleBlock.Title;
    
   //... 
}
Example using streams
var stream = new MemoryStream(...)
var parser = new PcbNewParser();
var parserResult = parser.Parse(stream);

if(parser.Success)
{
    var pcb = parser.Result;
    var title = eeschema.TitleBlock.Title;
    
   //... 
}
Symbol libary & symbols

With the Eeschema library it is also possible to load the symbol library table file and symbol files.

var parser = new SymLibTableParser();
var parserResult = parser.Parse("sym-lib-table");

if(parser.Success)
{
    var symLib = parser.Result;
    var version = symLib.Version;
    
   //... 
}
var parser = new SymLibParser();
var parserResult = parser.Parse("mysymbol.kicad_sym");

if(parser.Success)
{
    var symbol = parser.Result;
    var version = symbol.Version;
    
   //... 
}

Pcbnew

Add nuget package to your project:

dotnet add package MSDMarkwort.Kicad.Parser.PcbNew

Example with file on disk
var parser = new PcbNewParser();
var parserResult = parser.Parse("myproject.kicad_pcb");

if(parser.Success)
{
    var pcb = parser.Result;
    var title = pcb.TitleBlock.Title;
    
   //... 
}
Example using streams
var stream = new MemoryStream(...)
var parser = new PcbNewParser();
var parserResult = parser.Parse(stream);

if(parser.Success)
{
    var pcb = parser.Result;
    var title = pcb.TitleBlock.Title;
    
   //... 
}
Footprint libary & footprints

With the Pcbnew library it is also possible to load the fottprint library table file and footprint files.

var parser = new FootprintLibTableParser();
var parserResult = parser.Parse("fp-lib-table");

if(parser.Success)
{
    var footprintLib = parser.Result;
    var version = footprintLib.Version;
    
   //... 
}
var parser = new FootprintLibParser();
var parserResult = parser.Parse("mysymbol.kicad_mod");

if(parser.Success)
{
    var footprint = parser.Result;
    var version = footprint.Version;
    
   //... 
}

FAQ

The parser result property Success is false

In this case parsing was not successful. May be due to a bug in this libray or an unsupported file.

What is the minimum version of Kicad files that can be parsed?

Minimum file version of kicad_sch, kicad_pcb, kicad_sym & kicad_mod is 20200829 which should be Kicad 6.0.

What does the Warning property of the parser result mean?

A warning is generated if,

  • a property is missing
  • a property has the wrong type.
  • file version is too old

Any warning except the version warning is interesstant to me. Please let me know.

Will Kicad legacy versions be supported?

No.

Will there be writers in the future

Yes.

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.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on MSDMarkwort.Kicad.Parser.Base:

Package Downloads
MSDMarkwort.Kicad.Parser.PcbNew

Package Description

MSDMarkwort.Kicad.Parser.Model

Package Description

MSDMarkwort.Kicad.Parser.EESchema

Package Description

MSDMarkwort.Kicad.Parser.Project

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.11 356 8/24/2025
0.1.10 238 11/28/2024
0.1.9 189 11/26/2024
0.1.8 198 11/25/2024
0.1.6 178 11/20/2024