A library for adding scripting to .NET applications. Supports V8 (Windows, Linux, macOS) and JScript/VBScript (Windows).
Перейти к файлу
ClearScript 6df5f19436 Version 7.4.4: Added ConcurrentPropertyBag (GitHub Issue #531); [V8] added V8ScriptEngineFlags.UseSynchronizationContexts (GitHub Discussion #509); added ScriptEngine.CustomAttributeLoader (GitHub Discussion #540); fixed property accessor recursion bug (GitHub Issue #541); added ScriptEngine.HostData and CustomAttributeLoader.Default; updated API documentation. Tested with V8 11.8.172.15. 2023-10-16 22:06:55 -04:00
ClearScript Version 7.4.4: Added ConcurrentPropertyBag (GitHub Issue #531); [V8] added V8ScriptEngineFlags.UseSynchronizationContexts (GitHub Discussion #509); added ScriptEngine.CustomAttributeLoader (GitHub Discussion #540); fixed property accessor recursion bug (GitHub Issue #541); added ScriptEngine.HostData and CustomAttributeLoader.Default; updated API documentation. Tested with V8 11.8.172.15. 2023-10-16 22:06:55 -04:00
ClearScriptBenchmarks Version 7.4.4: Added ConcurrentPropertyBag (GitHub Issue #531); [V8] added V8ScriptEngineFlags.UseSynchronizationContexts (GitHub Discussion #509); added ScriptEngine.CustomAttributeLoader (GitHub Discussion #540); fixed property accessor recursion bug (GitHub Issue #541); added ScriptEngine.HostData and CustomAttributeLoader.Default; updated API documentation. Tested with V8 11.8.172.15. 2023-10-16 22:06:55 -04:00
ClearScriptConsole Version 7.4.4: Added ConcurrentPropertyBag (GitHub Issue #531); [V8] added V8ScriptEngineFlags.UseSynchronizationContexts (GitHub Discussion #509); added ScriptEngine.CustomAttributeLoader (GitHub Discussion #540); fixed property accessor recursion bug (GitHub Issue #541); added ScriptEngine.HostData and CustomAttributeLoader.Default; updated API documentation. Tested with V8 11.8.172.15. 2023-10-16 22:06:55 -04:00
ClearScriptTest Version 7.4.4: Added ConcurrentPropertyBag (GitHub Issue #531); [V8] added V8ScriptEngineFlags.UseSynchronizationContexts (GitHub Discussion #509); added ScriptEngine.CustomAttributeLoader (GitHub Discussion #540); fixed property accessor recursion bug (GitHub Issue #541); added ScriptEngine.HostData and CustomAttributeLoader.Default; updated API documentation. Tested with V8 11.8.172.15. 2023-10-16 22:06:55 -04:00
ClearScriptV8 Version 7.4.4: Added ConcurrentPropertyBag (GitHub Issue #531); [V8] added V8ScriptEngineFlags.UseSynchronizationContexts (GitHub Discussion #509); added ScriptEngine.CustomAttributeLoader (GitHub Discussion #540); fixed property accessor recursion bug (GitHub Issue #541); added ScriptEngine.HostData and CustomAttributeLoader.Default; updated API documentation. Tested with V8 11.8.172.15. 2023-10-16 22:06:55 -04:00
Misc Version 7.2.3: Fixed crash on attempt to execute a compiled script in the wrong V8 runtime; fixed intermittent V8 crash on Windows x86 (GitHub Issue #354); added V8GlobalFlags.DisableBackgroundWork; fixed async function performance (GitHub Issue #356); added a WebAssembly unit test; updated API documentation. Tested with V8 9.9.115.8. 2022-03-05 10:04:28 -08:00
NetCore Version 7.4.4: Added ConcurrentPropertyBag (GitHub Issue #531); [V8] added V8ScriptEngineFlags.UseSynchronizationContexts (GitHub Discussion #509); added ScriptEngine.CustomAttributeLoader (GitHub Discussion #540); fixed property accessor recursion bug (GitHub Issue #541); added ScriptEngine.HostData and CustomAttributeLoader.Default; updated API documentation. Tested with V8 11.8.172.15. 2023-10-16 22:06:55 -04:00
NetFramework Version 7.4.4: Added ConcurrentPropertyBag (GitHub Issue #531); [V8] added V8ScriptEngineFlags.UseSynchronizationContexts (GitHub Discussion #509); added ScriptEngine.CustomAttributeLoader (GitHub Discussion #540); fixed property accessor recursion bug (GitHub Issue #541); added ScriptEngine.HostData and CustomAttributeLoader.Default; updated API documentation. Tested with V8 11.8.172.15. 2023-10-16 22:06:55 -04:00
NetStandard Version 7.4.4: Added ConcurrentPropertyBag (GitHub Issue #531); [V8] added V8ScriptEngineFlags.UseSynchronizationContexts (GitHub Discussion #509); added ScriptEngine.CustomAttributeLoader (GitHub Discussion #540); fixed property accessor recursion bug (GitHub Issue #541); added ScriptEngine.HostData and CustomAttributeLoader.Default; updated API documentation. Tested with V8 11.8.172.15. 2023-10-16 22:06:55 -04:00
NuGet/files Version 7.4.1: Performance improvements: .NET method arguments and property/field values are now passed pre-decoded, eliminating decoding hops; property, field, and constructor bind caching accelerates re-invocation. Further refined HeapExpansionMultiplier handling; miscellaneous NuGet package updates. Tested with V8 11.2.214.13. 2023-04-08 14:24:38 -04:00
UWP Version 7.4.4: Added ConcurrentPropertyBag (GitHub Issue #531); [V8] added V8ScriptEngineFlags.UseSynchronizationContexts (GitHub Discussion #509); added ScriptEngine.CustomAttributeLoader (GitHub Discussion #540); fixed property accessor recursion bug (GitHub Issue #541); added ScriptEngine.HostData and CustomAttributeLoader.Default; updated API documentation. Tested with V8 11.8.172.15. 2023-10-16 22:06:55 -04:00
Unix Version 7.4.4: Added ConcurrentPropertyBag (GitHub Issue #531); [V8] added V8ScriptEngineFlags.UseSynchronizationContexts (GitHub Discussion #509); added ScriptEngine.CustomAttributeLoader (GitHub Discussion #540); fixed property accessor recursion bug (GitHub Issue #541); added ScriptEngine.HostData and CustomAttributeLoader.Default; updated API documentation. Tested with V8 11.8.172.15. 2023-10-16 22:06:55 -04:00
V8 Version 7.4.4: Added ConcurrentPropertyBag (GitHub Issue #531); [V8] added V8ScriptEngineFlags.UseSynchronizationContexts (GitHub Discussion #509); added ScriptEngine.CustomAttributeLoader (GitHub Discussion #540); fixed property accessor recursion bug (GitHub Issue #541); added ScriptEngine.HostData and CustomAttributeLoader.Default; updated API documentation. Tested with V8 11.8.172.15. 2023-10-16 22:06:55 -04:00
docs Version 7.4.4: Added ConcurrentPropertyBag (GitHub Issue #531); [V8] added V8ScriptEngineFlags.UseSynchronizationContexts (GitHub Discussion #509); added ScriptEngine.CustomAttributeLoader (GitHub Discussion #540); fixed property accessor recursion bug (GitHub Issue #541); added ScriptEngine.HostData and CustomAttributeLoader.Default; updated API documentation. Tested with V8 11.8.172.15. 2023-10-16 22:06:55 -04:00
.gitignore ClearScript 7.3: Added V8ScriptEngineFlags.EnableStringifyEnhancements (GitHub Issue #376); the V8 ICU data is now packaged as a managed library to ease deployment; V8 and JScript startup scripts are now minified; fixed Exception.TargetSite reflection hole and added V8ScriptEngineFlags.HideHostExceptions (GitHub Issue #382); fixed typeof-literal comparison in V8; V8Update.cmd now works in a Visual Studio 2022 command prompt; Rosetta is no longer required for macOS builds on the arm64 (M1) architecture; updated build, deployment, and API documentation. Tested with V8 10.2.154.5. 2022-06-02 09:22:30 -04:00
ClearScript.NoV8.sln Version 7.1.1: Added support for Linux on 32-bit ARM hardware (GitHub Issue #230); added support for .NET Standard 2.1 (GitHub Issue #151); added V8RuntimeConstraints.HeapExpansionMultiplier; fixed an intermittent crash related to V8 background tasks; updated API and build documentation. Tested with V8 8.9.255.20. 2021-03-04 05:22:48 -08:00
ClearScript.NoV8.sln.DotSettings Version 7.4.3: Improved handling of anonymous host types; [V8] [JScript] added support for JSON modules; [V8] made host object toJSON method non-enumerable; [V8] added enhanced compilation APIs (GitHub Issue #521); [V8] added debugger connection events (GitHub Issue #518); added Microsoft.ClearScript.Complete NuGet package (GitHub Issue #515); updated API documentation. Tested with V8 11.6.189.18. 2023-08-19 10:29:45 -04:00
ClearScript.sln ClearScript 7.3: Added V8ScriptEngineFlags.EnableStringifyEnhancements (GitHub Issue #376); the V8 ICU data is now packaged as a managed library to ease deployment; V8 and JScript startup scripts are now minified; fixed Exception.TargetSite reflection hole and added V8ScriptEngineFlags.HideHostExceptions (GitHub Issue #382); fixed typeof-literal comparison in V8; V8Update.cmd now works in a Visual Studio 2022 command prompt; Rosetta is no longer required for macOS builds on the arm64 (M1) architecture; updated build, deployment, and API documentation. Tested with V8 10.2.154.5. 2022-06-02 09:22:30 -04:00
ClearScript.sln.DotSettings Version 7.4.3: Improved handling of anonymous host types; [V8] [JScript] added support for JSON modules; [V8] made host object toJSON method non-enumerable; [V8] added enhanced compilation APIs (GitHub Issue #521); [V8] added debugger connection events (GitHub Issue #518); added Microsoft.ClearScript.Complete NuGet package (GitHub Issue #515); updated API documentation. Tested with V8 11.6.189.18. 2023-08-19 10:29:45 -04:00
License.txt Tweaked licenses slightly. 2018-10-08 22:33:19 -04:00
ReadMe.md Update ReadMe.md 2023-08-20 16:22:55 -04:00
RunNetCoreTests.cmd Version 7.1.2: Added optional ValueTask conversions (GitHub Issue #248); patched V8 to avoid Date.prototype.toLocaleString crash when ICU data is unavailable (GitHub Issue #246); added HostSettings.AuxiliarySearchPath; fixed default document loader issue with foreign file name extensions; updated V8 debug agent web responses for Node.js alignment; updated API documentation. Tested with V8 9.0.257.19. 2021-04-17 11:09:56 -07:00
SECURITY.md Microsoft mandatory file (#380) 2022-05-19 08:51:15 -04:00
V8Update.cmd Version 7.4.4: Added ConcurrentPropertyBag (GitHub Issue #531); [V8] added V8ScriptEngineFlags.UseSynchronizationContexts (GitHub Discussion #509); added ScriptEngine.CustomAttributeLoader (GitHub Discussion #540); fixed property accessor recursion bug (GitHub Issue #541); added ScriptEngine.HostData and CustomAttributeLoader.Default; updated API documentation. Tested with V8 11.8.172.15. 2023-10-16 22:06:55 -04:00
Version.tt Version 7.4.4: Added ConcurrentPropertyBag (GitHub Issue #531); [V8] added V8ScriptEngineFlags.UseSynchronizationContexts (GitHub Discussion #509); added ScriptEngine.CustomAttributeLoader (GitHub Discussion #540); fixed property accessor recursion bug (GitHub Issue #541); added ScriptEngine.HostData and CustomAttributeLoader.Default; updated API documentation. Tested with V8 11.8.172.15. 2023-10-16 22:06:55 -04:00

ReadMe.md

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: