[开源]ApolloClr一个新的IL解释器,并且能运行在Web上

ApolloClr是一个新的IL解释器,可在Web上运行。它旨在提供比现有解决方案更快的速度,更高的兼容性,并解决了协程实现的问题。目前支持基础的CLR穿透调用、异常处理等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[开源]ApolloClr一个新的IL解释器,并且能运行在Web上

导言

隔壁有L#,又有ILRuntime,理论上不应该写这个东西。
最近补.net IL 写Aop,想想顺手写个IL解释器。还能解决下协程实现问题,也就开了这个项目,希望努力能写完吧。

GitHub地址
Web预览版地址,点击运行

期望
1.至少比以上2个实现都稍微快一点,至少现在是。
2.有个JS版本(移植仅仅是为了好玩,肯定很慢,现在有个预览版本,
3.除了不支持指针等(也没什么办法支持)兼容率最好达到一个很高的程度。
4.后续会去弄一堆的测试来作为目标,努力保证运行结果一致。
5.在.Net基础穿透性能上,做到最优,如果有兴趣拿去当Unity热更,肯定没问题。
提示

早期版本

实现列表
1.运行堆栈模拟
2.通过SilAPI对IL进行解析
3.基础函数方法和类型转换
4.基础Clr穿透调用,ILVM调用C#,C#调用ILVM
5.基础类实现,调用字段/静态字段
6.基础类型转换
7.基础跳转比较以及流程控制
8.早期的异常支持,try catch finaly
9.数组指令的实现
ILSpy 是一个开源.NET反编译工具,简洁强大易用是它的特征。在绝大多数情况下,它都能很好的完成你对未知程序集内部代码的探索。 ILSpy .NET Decompiler Download Binaries Download Source View On GitHub ILSpy is the open-source .NET assembly browser and decompiler. Development started after Red Gate announced that the free version of .NET Reflector would cease to exist by end of February 2011. ILSpy requires the .NET Framework 4.0. Important links: Discussion forum Issue Tracker ILSpy plugin list Build server Release History Want to know when major new features are added? When a new stable version is released? Follow us on Twitter! 6/5/2016 Version 2.4 4/9/2016 Version 2.3.2 7/13/2015 Version 2.3.1 3/9/2015 Version 2.3 6/29/2014 Version 2.2 6/3/2012 Version 2.1 4/15/2012 Version 2.0 2/16/2012 2.0 Beta 7/16/2011 Version 1.0 5/29/2011 Beta 5/4/2011 M3 4/13/2011 M2 2/24/2011 M1 (Milestone 1) Release 2/16/2011 First Preview 2/4/2011 Development Starts (github repository created) ILSpy Features Assembly browsing IL Disassembly Support C# 5.0 “async” Decompilation to C# Supports lambdas and ‘yield return’ Shows XML documentation Decompilation to VB Saving of resources Save decompiled assembly as .csproj Search for types/methods/properties (substring) Hyperlink-based type/method/property navigation Base/Derived types navigation Navigation history BAML to XAML decompiler Save Assembly as C# Project Find usage of field/method Extensible via plugins (MEF) Assembly Lists ILSpy - Further Down the Road Bookmarks Debugger Eusebiu’s blog Support C# 4.0 “dynamic” Add casts where required to make C# overload resolution call the correct method Support for fixed fields (“struct A { public unsafe fixed int Field[10]; }”) Decompiling ILSpy with itself and recompiling the result should result in a working ILSpy copy Assembly editing capabilities (similar to Reflexil) Blog Posts on ILSpy Development Daniel Grunwald’s blog David Srbecky’s blog Siegfried Pammer’s blog Eusebiu Marcu’s blog Screencasts, Demo & How To Videos Overview of features in ILSpy Build 296 Resolution: 720p Screenshots Viewing IL (Build 199) Image Navigating Types (Build 199) Image Saving Resources (Build 199) Image Decompiling a Type to C# (Build 199) Image Decompiling method with ‘yield return’ (Build 528) Image Project maintained by icsharpcodeHosted on GitHub Pages — Theme by orderedlist
本课程主要是针对ILRuntime设计一个独立的脚本热更新框,框架的优势:1.将代码热更脱离Assetbundle资源热更,独立的部分更适用于各种不同的框架。2.加快项目的逻辑更新,bug修复.(后期修bug,多数情况下并不用动到资源,只需要更新脚本代码,无需重走资源打包发布流程,大大提升效率)3.提供热更模式和正常开发模式的快速切换接口,可以让队友像平常一样去开发.4.不依赖市面上的任何AB框架,完全兼容市面上各种不同的AB框架.5.重点:希望通过它,帮助你学习、了解ILRuntime真正在项目中的应用.框架的将提供以下这些接口,这些接口将从0开始,在Unity里将C#脚本编译成dll,然后将dll放到服务器上,再将dll下载下来,进行加载,到最后从Unity主工程调用热更新的代码逻辑.1.Create hotfixdll接口将热更部分的代码 编译成dll生成dll版本配置(MD5)2.更新对比接口本地跟服务器的dll进行版本对比3.下载热更dll下载dll本身的文件下载版本记录文件4.加载热更dll加载dll实例化:AppDomain初始化:注册跨域继承适配器注册委托适配器LitJson重定向调用性能优化(CLR绑定功能)调用热更接口Hotfix.HotfixApplication.Main 进入热更逻辑5.ILMonoBehaviour用于监听组件的生命周期,实际是桥接(调用)热更的逻辑AwakeStartEnableUpdateLateUpdate.......6.添加其他常用的库DOTweenLitJsonSpineGoogle.ProtobufTextAnimation可以根据上面的方式,自行添加依赖的库... 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值