Embers 3.0.0

Suggested Alternatives

IronRuby.Portable

Additional Details

Please see the official abandonment statement: https://github.com/Joy-less/Embers

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package Embers --version 3.0.0
                    
NuGet\Install-Package Embers -Version 3.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Embers" Version="3.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Embers" Version="3.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Embers" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Embers --version 3.0.0
                    
#r "nuget: Embers, 3.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=Embers&version=3.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Embers&version=3.0.0
                    
Install as a Cake Tool

Noko

Embers

An embeddable Ruby interpreter written entirely in C#.

Its minimalistic design is intended for use in game engines, game mods, and C# applications.

Features

  • Run Ruby code in C# .NET
  • Adapter to convert between .NET objects and Ruby instances
  • Multithreading and thread safety option
  • Simplified standard library
  • No external dependencies

Usage

Basic Example

using Embers;

Scope Scope = new();
Scope.Evaluate("puts 'Ruby!'"); // Ruby!

Interop

Embers has an adapter which converts between .NET objects and Ruby instances. If an object is not built-in, its methods, fields and properties will be adapted. Methods such as SetVariable implicitly use the adapter for you.

class Pizza {
    public int Portions = 2;
    public string Topping = "Pepperoni";
}
Scope.SetVariable("pizza", typeof(Pizza));
string Topping = Scope.Evaluate("pizza.new.topping").CastString;
Console.WriteLine(Topping); // Pepperoni

Parsing

Expressions can be pre-parsed and interpreted much more quickly.

Expression[] Expressions = Scope.Parse("puts 'pre-parsed!'");
Expressions.Interpret(new Context(Scope.Location, Scope)); // pre-parsed!

Sandboxing

You can see which methods can still be accessed in StandardLibrary.cs.

Scope Scope = new(new AxisOptions() { Sandbox = true });
Scope.Evaluate("File.write('test.txt', 'text')"); // undefined method 'write' for File:Module

Game engine support

Embers is fully compatible with Godot, Unity, and other C# game engines. However, certain methods such as puts reference the Console, which is hidden in Godot and Unity by default, so you will need to make some changes.

For example:

// In StandardLibrary.cs
Console.WriteLine(Message.ToS()); // -> Godot.GD.Print(Message.ToS());

About Noko

Noko is Embers' mascot who you can see at the top.

She comes from a society in the Earth's core, 3000km below the surface. She has fiery powers but finds the surface a bit cold.

Noko is short for "Nokoribi" meaning "Embers" in Japanese.

Made with Embers

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net7.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated