Conari 1.4.0
🧬 Conari engine represents powerful platform for work with unmanaged memory, pe-modules, related PInvoke features,
and more for: Libraries, Executable Modules, enjoying of the unmanaged native C/C++ in .NET world, and other raw binary data.
Even accessing to complex types like structures without their declaration at all.
## Why Conari ?
It was designed to be loyal to your needs on the fly.
🔍 Easy to start:
```
using(var l = new ConariL("...")) {
// ...
}
```
🚀 Awesome speed:
test of regXwild's algorithms [[340x10000 Unicode](https://github.com/3F/regXwild/blob/d9e4cd18e6f3fbc29b271b1feb4d8c659aa14bd7/Readme.md#speed-comparison)]
🔨 Its amazing DLR features:
```
using(dynamic l = new ConariX("..."))
{
// just everything is yours ~
l.curl_easy_setopt(curl, 10002, "http://example.com/");
}
```
🔧 Raw accessibility to any binary data in unmanaged memory:
```
ptr.Native().align<int>(2, "x", "y")
.t<IntPtr>("data")
.Raw;
```
🏄 Most powerful PInvoke and even most convenient use of WinAPI. Our recipe is simple: *Just use it!*
```
dynamic user32 = new User32();
user32.ShowWindow(0x000A0A28, 3);
user32.MessageBoxA(0, "Conari in action", "Hello!", 0);
```
```
dynamic kernel32 = new Kernel32();
kernel32.GetModuleHandleA<IntPtr>("libcurl-x64");
kernel32.GetModuleHandleW<IntPtr>((WCharPtr)ustr);
```
**Important note:** Conari does not provide anything from above. It will just generate and adapt everything at runtime. Specially for you!
🔖 Modern **.NET Core**
Conari is ready for .NET Core starting from 1.4.
But we have even more, again. https://github.com/3F/Conari/issues/13
Conari also provides support for [ .NET Standard 2.0 ] layer which does not cover unmanaged EmitCalli due to missed implementation for System.Private.CoreLib.
🍰 MIT License! Enjoy.
. . . And more: https://github.com/3F/Conari
_ _ _ _ _ _
=======================================
gnt /p:ngpackages="Conari/1.4.0"
================== https://github.com/3F/GetNuTool
Build info:
S_NUM: 1.4.0
S_REV: 48437
S_NUM_REV: 1.4.0.48437
bSha1: c4e75ee
bName: master
bRevc: 62
Configuration: PublicRelease
Platforms: net40;net472;netstandard2.0;netcoreapp2.1;netstandard2.1
revDeltaBase: 2017/01/01
revDeltaMin: 1000
revDeltaMax: 65534
:: generated by a vsSolutionBuildEvent v1.14.0.36854
Install-Package Conari -Version 1.4.0
dotnet add package Conari --version 1.4.0
<PackageReference Include="Conari" Version="1.4.0" />
paket add Conari --version 1.4.0
#r "nuget: Conari, 1.4.0"
// Install Conari as a Cake Addin
#addin nuget:?package=Conari&version=1.4.0
// Install Conari as a Cake Tool
#tool nuget:?package=Conari&version=1.4.0
Release Notes
changelog: https://github.com/3F/Conari/blob/master/changelog.txt
Dependencies
-
.NETCoreApp 2.1
- Microsoft.CSharp (>= 4.6.0)
- System.Reflection.Emit (>= 4.6.0)
- System.Reflection.Emit.Lightweight (>= 4.6.0)
-
.NETFramework 4.0
- No dependencies.
-
.NETFramework 4.7.2
- No dependencies.
-
.NETStandard 2.0
- Microsoft.CSharp (>= 4.6.0)
- System.Reflection.Emit (>= 4.6.0)
- System.Reflection.Emit.Lightweight (>= 4.6.0)
-
.NETStandard 2.1
- Microsoft.CSharp (>= 4.6.0)
- System.Reflection.Emit (>= 4.6.0)
- System.Reflection.Emit.Lightweight (>= 4.6.0)
Used By
NuGet packages (2)
Showing the top 2 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
|
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)
|