LoraxMod

1.0.2

Tree-sitter AST parsing and analysis via PowerShell. Native C# implementation with schema-driven extraction. Supports 28+ languages.

Minimum PowerShell version

7.0

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name LoraxMod

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name LoraxMod

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

(c) 2025 jackyHardDisk. MIT License.

Package Details

Author(s)

  • jackyHardDisk

Tags

tree-sitter AST parsing code-analysis static-analysis

Cmdlets

Get-LoraxSchema ConvertTo-LoraxAST Find-LoraxNode Compare-LoraxAST Start-LoraxParserSession Invoke-LoraxParse Stop-LoraxParserSession Find-LoraxFunction Get-LoraxDependency Get-LoraxDiff

Dependencies

This module has no dependencies.

Release Notes

## v1.0.2 - License Compliance

Additions:
- Added THIRD_PARTY_NOTICES.txt with MIT license attributions
- TreeSitter.DotNet and all tree-sitter grammars properly attributed

## v1.0.1 - DLL Loading Fix

Fixes:
- Fixed native DLL loading when module loaded via PWSH_MCP_MODULES
- ModuleInitializer now modifies PATH environment variable to include bin/ and runtimes/{RID}/native/
- TreeSitter.DotNet language parsers (tree-sitter-python.dll, etc.) now load correctly

Technical Details:
- TreeSitter.DotNet uses LoadLibrary (Win32 API) which searches PATH
- AddDllDirectory doesn't work (only affects LoadLibraryEx with LOAD_LIBRARY_SEARCH_USER_DIRS)
- Solution: Modify PATH environment variable during assembly initialization

See: PWSH_DLL_LOADING_ISSUE.md for detailed investigation and solution documentation

## v1.0.0 - Native C# Implementation

Breaking Changes:
- Complete rewrite using TreeSitter.DotNet native bindings
- No Node.js dependency required
- New cmdlet-based API (10 cmdlets)
- Removed script-based functions from v0.3.0

New Architecture:
- Native C# parsers via TreeSitter.DotNet
- Schema-driven extraction (dynamic field discovery)
- Direct .NET integration
- 28+ supported languages (vs 12 in v0.3.0)

Cmdlets:
- Schema: Get-LoraxSchema (query schemas, list languages)
- Parse: ConvertTo-LoraxAST, Find-LoraxNode, Compare-LoraxAST
- Sessions: Start/Invoke/Stop-LoraxParserSession (batch processing)
- Analysis: Find-LoraxFunction, Get-LoraxDependency, Get-LoraxDiff

Performance:
- Faster parsing (native C# vs Node.js interop)
- Session-based batch processing for high throughput
- Reduced memory overhead

Language Support:
- All v0.3.0 languages: C, C++, C#, Python, JavaScript, Rust, CSS, HTML, Bash
- New: TypeScript, Go, Java, Ruby, PHP, Swift, JSON, and 13+ more
- Missing from v0.3.0: Fortran, PowerShell, R (use v0.3.0 or SchemaCache for 170+ languages)

Migration from v0.3.0:
- Start-LoraxStreamParser -> Start-LoraxParserSession
- Invoke-LoraxStreamQuery -> Invoke-LoraxParse
- Stop-LoraxStreamParser -> Stop-LoraxParserSession
- Find-FunctionCalls -> Find-LoraxFunction (alias preserved)
- Get-IncludeDependencies -> Get-LoraxDependency (alias preserved)

Requirements:
- PowerShell 7.0+
- .NET 8.0 runtime
- No Node.js dependency

FileList

  • LoraxMod.nuspec
  • bin\runtimes\linux-arm64\native\libtree-sitter-css.so
  • bin\runtimes\win\lib\net8.0\System.Management.Automation.dll
  • bin\runtimes\win-x64\native\tree-sitter-haskell.dll
  • LoraxMod.psd1
  • bin\runtimes\linux-arm64\native\libtree-sitter-embedded-template.so
  • bin\runtimes\win\lib\net8.0\System.Management.dll
  • bin\runtimes\win-x64\native\tree-sitter-html.dll
  • LoraxMod.psm1
  • bin\runtimes\linux-arm64\native\libtree-sitter-go.so
  • bin\runtimes\win\lib\net8.0\System.Security.Cryptography.Pkcs.dll
  • bin\runtimes\win-x64\native\tree-sitter-java.dll
  • THIRD_PARTY_NOTICES.txt
  • bin\runtimes\linux-arm64\native\libtree-sitter-haskell.so
  • bin\runtimes\win\lib\net8.0\System.Windows.Extensions.dll
  • bin\runtimes\win-x64\native\tree-sitter-javascript.dll
  • bin\LoraxMod.deps.json
  • bin\runtimes\linux-arm64\native\libtree-sitter-html.so
  • bin\runtimes\win-arm\lib\net5.0\getfilesiginforedistwrapper.dll
  • bin\runtimes\win-x64\native\tree-sitter-jsdoc.dll
  • bin\LoraxMod.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-java.so
  • bin\runtimes\win-arm\native\getfilesiginforedist.dll
  • bin\runtimes\win-x64\native\tree-sitter-json.dll
  • bin\LoraxMod.pdb
  • bin\runtimes\linux-arm64\native\libtree-sitter-javascript.so
  • bin\runtimes\win-arm\native\PowerShell.Core.Instrumentation.dll
  • bin\runtimes\win-x64\native\tree-sitter-julia.dll
  • bin\LoraxMod.xml
  • bin\runtimes\linux-arm64\native\libtree-sitter-jsdoc.so
  • bin\runtimes\win-arm\native\pwrshplugin.dll
  • bin\runtimes\win-x64\native\tree-sitter-ocaml.dll
  • bin\Microsoft.ApplicationInsights.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-json.so
  • bin\runtimes\win-arm64\lib\net5.0\getfilesiginforedistwrapper.dll
  • bin\runtimes\win-x64\native\tree-sitter-php.dll
  • bin\Microsoft.Win32.Registry.AccessControl.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-julia.so
  • bin\runtimes\win-arm64\lib\netstandard1.6\microsoft.management.infrastructure.dll
  • bin\runtimes\win-x64\native\tree-sitter-python.dll
  • bin\Newtonsoft.Json.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-ocaml.so
  • bin\runtimes\win-arm64\lib\netstandard1.6\microsoft.management.infrastructure.native.dll
  • bin\runtimes\win-x64\native\tree-sitter-ql.dll
  • bin\System.CodeDom.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-php.so
  • bin\runtimes\win-arm64\native\getfilesiginforedist.dll
  • bin\runtimes\win-x64\native\tree-sitter-ruby.dll
  • bin\System.Configuration.ConfigurationManager.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-python.so
  • bin\runtimes\win-arm64\native\microsoft.management.infrastructure.native.unmanaged.dll
  • bin\runtimes\win-x64\native\tree-sitter-rust.dll
  • bin\System.Diagnostics.EventLog.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-ql.so
  • bin\runtimes\win-arm64\native\PowerShell.Core.Instrumentation.dll
  • bin\runtimes\win-x64\native\tree-sitter-scala.dll
  • bin\System.DirectoryServices.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-ruby.so
  • bin\runtimes\win-arm64\native\pwrshplugin.dll
  • bin\runtimes\win-x64\native\tree-sitter-swift.dll
  • bin\System.Management.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-rust.so
  • bin\runtimes\win-arm64\native\tree-sitter-agda.dll
  • bin\runtimes\win-x64\native\tree-sitter-toml.dll
  • bin\System.Security.Cryptography.Pkcs.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-scala.so
  • bin\runtimes\win-arm64\native\tree-sitter-bash.dll
  • bin\runtimes\win-x64\native\tree-sitter-tsq.dll
  • bin\System.Security.Cryptography.ProtectedData.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-tsx.so
  • bin\runtimes\win-arm64\native\tree-sitter-c-sharp.dll
  • bin\runtimes\win-x64\native\tree-sitter-tsx.dll
  • bin\System.Security.Permissions.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-typescript.so
  • bin\runtimes\win-arm64\native\tree-sitter-css.dll
  • bin\runtimes\win-x64\native\tree-sitter-typescript.dll
  • bin\System.Windows.Extensions.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-verilog.so
  • bin\runtimes\win-arm64\native\tree-sitter-embedded-template.dll
  • bin\runtimes\win-x64\native\tree-sitter-verilog.dll
  • bin\tree-sitter-agda.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter.so
  • bin\runtimes\win-arm64\native\tree-sitter-go.dll
  • bin\runtimes\win-x64\native\tree-sitter.dll
  • bin\tree-sitter-bash.dll
  • bin\runtimes\linux-musl-x64\native\libpsl-native.so
  • bin\runtimes\win-arm64\native\tree-sitter-haskell.dll
  • bin\runtimes\win-x86\lib\net5.0\getfilesiginforedistwrapper.dll
  • bin\tree-sitter-c-sharp.dll
  • bin\runtimes\linux-x64\native\libpsl-native.so
  • bin\runtimes\win-arm64\native\tree-sitter-html.dll
  • bin\runtimes\win-x86\lib\netstandard1.6\microsoft.management.infrastructure.dll
  • bin\tree-sitter-c.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-agda.so
  • bin\runtimes\win-arm64\native\tree-sitter-java.dll
  • bin\runtimes\win-x86\lib\netstandard1.6\microsoft.management.infrastructure.native.dll
  • bin\tree-sitter-cpp.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-bash.so
  • bin\runtimes\win-arm64\native\tree-sitter-jsdoc.dll
  • bin\runtimes\win-x86\native\getfilesiginforedist.dll
  • bin\tree-sitter-csharp.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-c-sharp.so
  • bin\runtimes\win-arm64\native\tree-sitter-json.dll
  • bin\runtimes\win-x86\native\microsoft.management.infrastructure.native.unmanaged.dll
  • bin\tree-sitter-css.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-c.so
  • bin\runtimes\win-arm64\native\tree-sitter-julia.dll
  • bin\runtimes\win-x86\native\PowerShell.Core.Instrumentation.dll
  • bin\tree-sitter-embedded-template.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-cpp.so
  • bin\runtimes\win-arm64\native\tree-sitter-ocaml.dll
  • bin\runtimes\win-x86\native\pwrshplugin.dll
  • bin\tree-sitter-go.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-css.so
  • bin\runtimes\win-arm64\native\tree-sitter-php.dll
  • bin\runtimes\win-x86\native\tree-sitter-agda.dll
  • bin\tree-sitter-haskell.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-embedded-template.so
  • bin\runtimes\win-arm64\native\tree-sitter-python.dll
  • bin\runtimes\win-x86\native\tree-sitter-bash.dll
  • bin\tree-sitter-html.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-go.so
  • bin\runtimes\win-arm64\native\tree-sitter-ql.dll
  • bin\runtimes\win-x86\native\tree-sitter-c-sharp.dll
  • bin\tree-sitter-java.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-haskell.so
  • bin\runtimes\win-arm64\native\tree-sitter-ruby.dll
  • bin\runtimes\win-x86\native\tree-sitter-c.dll
  • bin\tree-sitter-javascript.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-html.so
  • bin\runtimes\win-arm64\native\tree-sitter-rust.dll
  • bin\runtimes\win-x86\native\tree-sitter-cpp.dll
  • bin\tree-sitter-jsdoc.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-java.so
  • bin\runtimes\win-arm64\native\tree-sitter-scala.dll
  • bin\runtimes\win-x86\native\tree-sitter-css.dll
  • bin\tree-sitter-json.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-javascript.so
  • bin\runtimes\win-arm64\native\tree-sitter-swift.dll
  • bin\runtimes\win-x86\native\tree-sitter-embedded-template.dll
  • bin\tree-sitter-julia.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-jsdoc.so
  • bin\runtimes\win-arm64\native\tree-sitter-toml.dll
  • bin\runtimes\win-x86\native\tree-sitter-go.dll
  • bin\tree-sitter-ocaml.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-json.so
  • bin\runtimes\win-arm64\native\tree-sitter-tsq.dll
  • bin\runtimes\win-x86\native\tree-sitter-haskell.dll
  • bin\tree-sitter-php.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-julia.so
  • bin\runtimes\win-arm64\native\tree-sitter-tsx.dll
  • bin\runtimes\win-x86\native\tree-sitter-html.dll
  • bin\tree-sitter-python.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-ocaml.so
  • bin\runtimes\win-arm64\native\tree-sitter-typescript.dll
  • bin\runtimes\win-x86\native\tree-sitter-java.dll
  • bin\tree-sitter-ql.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-php.so
  • bin\runtimes\win-arm64\native\tree-sitter-verilog.dll
  • bin\runtimes\win-x86\native\tree-sitter-javascript.dll
  • bin\tree-sitter-ruby.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-python.so
  • bin\runtimes\win-arm64\native\tree-sitter.dll
  • bin\runtimes\win-x86\native\tree-sitter-jsdoc.dll
  • bin\tree-sitter-rust.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-ql.so
  • bin\runtimes\win-x64\lib\net5.0\getfilesiginforedistwrapper.dll
  • bin\runtimes\win-x86\native\tree-sitter-json.dll
  • bin\tree-sitter-scala.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-ruby.so
  • bin\runtimes\win-x64\lib\netstandard1.6\microsoft.management.infrastructure.dll
  • bin\runtimes\win-x86\native\tree-sitter-julia.dll
  • bin\tree-sitter-swift.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-rust.so
  • bin\runtimes\win-x64\lib\netstandard1.6\microsoft.management.infrastructure.native.dll
  • bin\runtimes\win-x86\native\tree-sitter-ocaml.dll
  • bin\tree-sitter-toml.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-scala.so
  • bin\runtimes\win-x64\native\getfilesiginforedist.dll
  • bin\runtimes\win-x86\native\tree-sitter-php.dll
  • bin\tree-sitter-tsq.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-tsx.so
  • bin\runtimes\win-x64\native\microsoft.management.infrastructure.native.unmanaged.dll
  • bin\runtimes\win-x86\native\tree-sitter-python.dll
  • bin\tree-sitter-tsx.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-typescript.so
  • bin\runtimes\win-x64\native\PowerShell.Core.Instrumentation.dll
  • bin\runtimes\win-x86\native\tree-sitter-ql.dll
  • bin\tree-sitter-typescript.dll
  • bin\runtimes\linux-x64\native\libtree-sitter-verilog.so
  • bin\runtimes\win-x64\native\pwrshplugin.dll
  • bin\runtimes\win-x86\native\tree-sitter-ruby.dll
  • bin\tree-sitter-verilog.dll
  • bin\runtimes\linux-x64\native\libtree-sitter.so
  • bin\runtimes\win-x64\native\tree-sitter-agda.dll
  • bin\runtimes\win-x86\native\tree-sitter-rust.dll
  • bin\tree-sitter.dll
  • bin\runtimes\osx\native\libpsl-native.dylib
  • bin\runtimes\win-x64\native\tree-sitter-bash.dll
  • bin\runtimes\win-x86\native\tree-sitter-scala.dll
  • bin\TreeSitter.dll
  • bin\runtimes\unix\lib\net8.0\System.Management.Automation.dll
  • bin\runtimes\win-x64\native\tree-sitter-c-sharp.dll
  • bin\runtimes\win-x86\native\tree-sitter-swift.dll
  • bin\runtimes\linux-arm\native\libpsl-native.so
  • bin\runtimes\unix\lib\netstandard1.6\Microsoft.Management.Infrastructure.dll
  • bin\runtimes\win-x64\native\tree-sitter-c.dll
  • bin\runtimes\win-x86\native\tree-sitter-toml.dll
  • bin\runtimes\linux-arm64\native\libpsl-native.so
  • bin\runtimes\win\lib\net8.0\Microsoft.PowerShell.CoreCLR.Eventing.dll
  • bin\runtimes\win-x64\native\tree-sitter-cpp.dll
  • bin\runtimes\win-x86\native\tree-sitter-tsq.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-agda.so
  • bin\runtimes\win\lib\net8.0\Microsoft.Win32.Registry.AccessControl.dll
  • bin\runtimes\win-x64\native\tree-sitter-csharp.dll
  • bin\runtimes\win-x86\native\tree-sitter-tsx.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-bash.so
  • bin\runtimes\win\lib\net8.0\System.Diagnostics.EventLog.dll
  • bin\runtimes\win-x64\native\tree-sitter-css.dll
  • bin\runtimes\win-x86\native\tree-sitter-typescript.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-c-sharp.so
  • bin\runtimes\win\lib\net8.0\System.Diagnostics.EventLog.Messages.dll
  • bin\runtimes\win-x64\native\tree-sitter-embedded-template.dll
  • bin\runtimes\win-x86\native\tree-sitter-verilog.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-c.so
  • bin\runtimes\win\lib\net8.0\System.DirectoryServices.dll
  • bin\runtimes\win-x64\native\tree-sitter-go.dll
  • bin\runtimes\win-x86\native\tree-sitter.dll
  • bin\runtimes\linux-arm64\native\libtree-sitter-cpp.so

Version History

Version Downloads Last updated
1.0.2 (current version) 4 12/28/2025
1.0.1 4 12/28/2025