Conari 1.3.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Conari --version 1.3.0                
NuGet\Install-Package Conari -Version 1.3.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="Conari" Version="1.3.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Conari --version 1.3.0                
#r "nuget: Conari, 1.3.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.
// Install Conari as a Cake Addin
#addin nuget:?package=Conari&version=1.3.0

// Install Conari as a Cake Tool
#tool nuget:?package=Conari&version=1.3.0                

Together with the DllExport project, we have a few useful examples for you:

1:[ C++ ❤ C# 💕C++. Part-1 ] 2:[ Complex types and Strings. Part-2 ] →{ 🗎 Wiki }

Product Compatible and additional computed target framework versions.
.NET Framework net40 is compatible.  net403 was computed.  net45 was computed.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Conari:

Package Downloads
LunaRoad

LunaRoad is a flexible platform for working with Lua for .NET /DLR & Lambda features. Open Source project under the MIT License. ⚠ LunaRoad now is 🗦🌔 LuNari ⮱ renamed on 27 Jan 2019 Current packages are no longer maintained. Please consider upgrading to modern LuNari ! NETFX and .NET Core support 📦 https://www.nuget.org/packages/LuNari

LuNari

🗦🌔 LuNari is Lua for .NET on Conari engine All actual Lua versions, like: Lua 5.4, 5.3, 5.2, 5.1, ... MIT License: https://github.com/3F/LuNari ## Why LuNari ? Most popular features that will be adapted to your needs on the fly. 🔍 Easy to start: ```csharp using(var l = new Lua<ILua53>("Lua.dll")) { /* ILua51, ILua52, ILua53, ... */ } ``` 🚀 Awesome speed: Based on the fast versions of Conari engine with caching of 0x29 opcodes (Calli). https://github.com/3F/Conari#why-conari- 🔨 Its amazing dynamic features: ```csharp using(dynamic l = new LuaD("Lua.dll")) { // Lua now is yours ~ IntPtr L = l.luaL_newstate<LuaState>(); var num = l.lua_tonumber<LuaNumber>(L, 1); } ``` 🍱 Damn customizable: ```csharp var l = new Lua<ILua52>("Lua52.dll"); l.API.pushcclosure(L, onProc, 0); l.bind<Action<LuaState, LuaCFunction, int>>("pushcclosure")(L, onProc, 0); l.v<ILua53>().pushcclosure(L, onProc, 0); ... ``` 🔖 Modern .NET Core LuNari is ready for .NET Core starting from 1.6. Its awesome dynamic features are also available even for .NET Standard 2.0 https://github.com/3F/Conari/issues/13 🌚 Unlimited extensible features: Since this works through Conari ( https://github.com/3F/Conari ), you can access to all newest features of the Lua immediately after introducing this in draft. Just use it without waiting for release. ======================================= gnt /p:ngpackages="LuNari/1.6.0" ================== https://github.com/3F/GetNuTool Build info: S_NUM: 1.6.0 S_REV: 24296 S_NUM_REV: 1.6.0.24296 bSha1: 920c7a6 bName: master bRevc: 52 Configuration: PublicRelease Platforms: net40;net472;netstandard2.0 revDeltaBase: 2017/02/07 revDeltaMin: 1000 revDeltaMax: 65534 :: generated by a vsSolutionBuildEvent v1.14.0.36854

IeXod

The most portable alternative to Microsoft.Build for evaluating, manipulating, and other progressive data processing in a compatible XML-like syntax. https://github.com/3F/IeXod

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Conari:

Repository Stars
3F/DllExport
.NET DllExport with .NET Core support (aka 3F/DllExport aka DllExport.bat)
Version Downloads Last updated
1.5.0 6,769 5/31/2021
1.4.0 8,367 11/30/2019
1.3.0 5,516 1/27/2017

public release of the Conari engine - v1.3:

   NEW: Improved speed >80% (DLR) & >90% (Lambda) - Issue #10
        `*` results for regXwild x64 (Unicode) via snet tester - https://github.com/3F/regXwild

   NEW: Improved DLR. Automatic detection for ByRef types & null-values for any reference-types that pushed with out/ref modifier.
        * +UseCallingContext - To use information about types from CallingContext if it's possible.
        * +UseByRef - To use ByRef& (reference-types) for all sent types.

   NEW: Added `NullType<T>` as optional way for work with reference-types. And for other purpose to store additional information about basic type for any null values.
   NEW: Added IProvider.NewProcAddress event - When handling new non-zero ProcAddress.
   NEW: Started support of Exported-Variables via IExVar & DLR - Issue #7
           ```
           l.ExVar.DLR.ADDR_SPEC; // 0x00001CE8
           l.ExVar.get<UInt32>("ADDR_SPEC"); // 0x00001CE8
           l.ExVar.getField(typeof(UInt32).NativeSize(), "ADDR_SPEC"); // Native.Core.Field via raw size
           l.Svc.native("lpProcName"); // Raw access via NativeData & Native.Core !
           ```

   NEW: Implemented aliases for Exported-Functions and Variables - Issue #9
           ```
           l.Aliases["Flag"] = l.Aliases["getFlag"] = l.Aliases["xFunc"]; //Flag() -> getFlag() -> xFunc()->...
           l.DLR.getFlag<bool>();
           ```
           ```
           l.Aliases["gmn"] = new ProcAlias(
               "GetMagicNum",
               new AliasCfg() { NoPrefixR = true } // false by default
           );
           ```

   NEW: Native.Core improvements - Extensions & new `t` signatures for node (raw alignments via size and managed types)
        +`t(Type type, string name = null)`
        +`t(Type[] types, params string[] names)`
        +`t(int size, string name = null)`

   NEW: Aliases for 'empty' types:
        +`Action bindFunc(string lpProcName);`
        +`Action bind(string func);`

   NEW: New group of binding via regular arguments:
        +`Method bindFunc(string lpProcName, Type ret, params Type[] args);`
        +`Method<T, object> bindFunc<T>(string lpProcName, Type ret, params Type[] args);`
        +`Method bind(string func, Type ret, params Type[] args);`
        +`Method<T, object> bind<T>(string func, Type ret, params Type[] args);`

   FIXED: Fixed possible crashes - 'A heap has been corrupted' when use of shared pointer between several UnmanagedStructure.
   CHANGED: ILoader: minor incompatible changes for PE32/PE32+ features.
            * New `IPE PE` property for complex work with PE-file.
            * The `ExportFunctionNames` property has been removed as obsolete. Use same `PE.ExportedProcNamesArray`

   CHANGED: IProvider minor incompatible changes `funcName()` -> `procName()`
            `string funcName(string name);` has been renamed to `string procName(string name);`
             - as a common method for getting full lpProcName with main prefix etc.

   CHANGED: `TDyn IBinder.bind(MethodInfo mi, bool prefix = false);` removed as a deprecated, because for this can be a lot of misunderstandings.
             If you need something, use like: `prefix ? l.procName(mi.Name) : mi.Name` etc. for any available methods with MethodInfo.

   CHANGED: Added User object (+`user`) for Native.Core.Field. To store any additional information that's related for specific field.