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
Dec 13, 2024
Mar 25, 2024
Mar 25, 2024
Mar 25, 2024
Mar 25, 2024
Mar 5, 2022
Dec 3, 2024
Dec 3, 2024
Dec 3, 2024
Apr 8, 2023
Oct 17, 2023
Dec 3, 2024
Mar 25, 2024
Oct 28, 2024
Jun 2, 2022
Mar 4, 2021
Aug 19, 2023
Jun 2, 2022
Aug 19, 2023
Oct 9, 2018
Aug 20, 2023
Apr 17, 2021
May 19, 2022
Mar 25, 2024
Mar 25, 2024

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: