3661fca138 | ||
---|---|---|
ClearScript | ||
ClearScriptBenchmarks | ||
ClearScriptConsole | ||
ClearScriptTest | ||
ClearScriptV8 | ||
Misc | ||
NetCore | ||
NetFramework | ||
NetStandard | ||
NuGet/files | ||
UWP | ||
Unix | ||
V8 | ||
docs | ||
.gitignore | ||
ClearScript.NoV8.sln | ||
ClearScript.NoV8.sln.DotSettings | ||
ClearScript.sln | ||
ClearScript.sln.DotSettings | ||
License.txt | ||
ReadMe.md | ||
RunNetCoreTests.cmd | ||
SECURITY.md | ||
V8Update.cmd | ||
Version.tt |
ReadMe.md
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
- Support for fast data transfer to and from JavaScript typed arrays
- Support for JavaScript modules
- Support for CommonJS modules
- Automatic conversion between .NET
BigInteger
and JavaScriptBigInt
. - Optional automatic conversion between .NET
DateTime
and JavaScriptDate
. - 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
Composite packages
Everything you need for one platform.
Platform | Packages |
---|---|
Windows | |
Linux | |
macOS |
Component packages
Cross-platform libraries and data.
Component | Packages |
---|---|
Core | |
JScript/VBScript | |
V8 |
V8 native assembly packages
Platform-specific V8 libraries.
Platform | Packages |
---|---|
Windows | |
Linux | |
macOS |
Documentation
Acknowledgments
We'd like to thank:
- The V8 team.
- The Jekyll team.
- Kenneth Reitz for generously providing the
Httpbin
service. - Michael Rose for generously providing the So Simple Jekyll theme.
- Toptal for generously providing the Toptal JavaScript Minifier.