Skip to content

A library for adding scripting to .NET applications. Supports V8 (Windows, Linux, macOS) and JScript/VBScript (Windows).

License

Notifications You must be signed in to change notification settings

microsoft/ClearScript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Banner

Twitter Follow

Description

ClearScript is a library that makes it easy to add scripting to your .NET applications. It currently supports JavaScript (via V8 and JScript) and VBScript.

Features

  • Simple usage; create a script engine, add your objects and/or types, run scripts
  • Support for several script engines: Google's V8, Microsoft's JScript and VBScript
  • Exposed resources require no modification, decoration, or special coding of any kind
  • Scripts get simple access to most of the features of exposed objects and types:
    • Methods, properties, fields, events
    • (Objects) Indexers, extension methods, conversion operators, explicitly implemented interfaces
    • (Types) Constructors, nested types
  • Full support for generic types and methods, including C#-like type inference and explicit type arguments
  • Exposed .NET collections support native script iteration mechanisms:
  • Scripts can invoke methods with output parameters, optional parameters, and parameter arrays
  • Script delegates enable callbacks into script code
  • Support for exposing all the types defined in one or more assemblies in one step
  • Optional support for importing types and assemblies from script code
  • The host can invoke script functions and access script objects directly
  • Full support for script debugging
  • V8 Support for fast data transfer to and from JavaScript typed arrays
  • V8 Support for JavaScript modules
  • V8 JScript Support for CommonJS modules
  • V8 Automatic conversion between .NET BigInteger and JavaScript BigInt.
  • V8 Optional automatic conversion between .NET DateTime and JavaScript Date.
  • V8 Optional automatic conversion between .NET tasks and JavaScript promises.
  • Support for .NET 5.0+, .NET Framework 4.5+, .NET Core 3.1, and .NET Standard 2.1.
  • Support for Windows (x86/x64/arm64), Linux (x64/arm/arm64), and macOS (x64/arm64).

Installation

Complete package

All in one, for all supported platforms.

ClearScript.Complete

Composite packages

Everything you need for one platform.

Platform Packages
Windows ClearScript ClearScript.win-arm64
Linux ClearScript.linux-x64 ClearScript.linux-arm ClearScript.linux-arm64
macOS ClearScript.osx-x64 ClearScript.osx-arm64

Component packages

Cross-platform libraries and data.

Component Packages
Core ClearScript.Core
JScript/VBScript ClearScript.Windows.Core ClearScript.Windows
V8 ClearScript.V8 Microsoft.ClearScript.V8.ICUData

V8 native assembly packages

Platform-specific V8 libraries.

Platform Packages
Windows ClearScript.V8.Native.win-x86 ClearScript.V8.Native.win-x64 ClearScript.V8.Native.win-arm64
Linux ClearScript.V8.Native.linux-x64 ClearScript.V8.Native.linux-arm ClearScript.V8.Native.linux-arm64
macOS ClearScript.V8.Native.osx-x64 ClearScript.V8.Native.osx-arm64

Documentation

Acknowledgments

We'd like to thank: