All Projects → paavohuhtala → clri

paavohuhtala / clri

Licence: MIT license
An unfinished CIL interpreter in Rust

Programming Languages

rust
11053 projects
C#
18002 projects

Projects that are alternatives of or similar to clri

Simple
The Simple Intelligent and Modular Programming Language and Environment
Stars: ✭ 120 (+445.45%)
Mutual labels:  interpreter, experimental
Jaspy
a Python VM written entirely from scratch in JavaScript with some unique features
Stars: ✭ 577 (+2522.73%)
Mutual labels:  interpreter, experimental
Dictu
Dictu is a high-level dynamically typed, multi-paradigm, interpreted programming language.
Stars: ✭ 191 (+768.18%)
Mutual labels:  interpreter
uwuscript
World's first uwu-oriented language.
Stars: ✭ 75 (+240.91%)
Mutual labels:  interpreter
JMT-MCMT
A multithreading mod for for Minecraft forge 1.15.2 and 1.16.x
Stars: ✭ 206 (+836.36%)
Mutual labels:  experimental
jsish
Jsi is a small, C-embeddable javascript interpreter with tightly woven Web and DB support.
Stars: ✭ 32 (+45.45%)
Mutual labels:  interpreter
AlchemyVM
WebAssembly Virtual Machine Built In Elixir
Stars: ✭ 184 (+736.36%)
Mutual labels:  interpreter
monkey
The Monkey Programming Language & Interpreter written in PHP.
Stars: ✭ 21 (-4.55%)
Mutual labels:  interpreter
xemime
The Xemime programming language
Stars: ✭ 13 (-40.91%)
Mutual labels:  interpreter
slox
Swift implementation of a Lox interpreter
Stars: ✭ 39 (+77.27%)
Mutual labels:  interpreter
cidk
interpreter devkit
Stars: ✭ 23 (+4.55%)
Mutual labels:  interpreter
PDDL.jl
Julia parser, interpreter and compiler interface for the Planning Domain Definition Language (PDDL). Planners not included.
Stars: ✭ 52 (+136.36%)
Mutual labels:  interpreter
quickjs-build
Build for QuickJS JavaScript Engine
Stars: ✭ 25 (+13.64%)
Mutual labels:  interpreter
blade
A simple, fast, clean, and dynamic language that allows you to develop applications quickly.
Stars: ✭ 113 (+413.64%)
Mutual labels:  interpreter
pyccolo
Declarative instrumentation for Python.
Stars: ✭ 70 (+218.18%)
Mutual labels:  interpreter
basicv2
A Commodore (CBM) BASIC V2 interpreter/compiler written in Java
Stars: ✭ 73 (+231.82%)
Mutual labels:  interpreter
foxscheme
An R5RS Scheme in JavaScript.
Stars: ✭ 15 (-31.82%)
Mutual labels:  interpreter
vimana-framework
Vimana is an experimental security framework that aims to provide resources for auditing Python web applications.
Stars: ✭ 47 (+113.64%)
Mutual labels:  experimental
HaxeVM
Prototype compiler/virtual machine in Haxe for Haxe
Stars: ✭ 24 (+9.09%)
Mutual labels:  interpreter
riptide
The Riptide Programming Language: Shell scripting redesigned.
Stars: ✭ 24 (+9.09%)
Mutual labels:  interpreter

CLRi

Slow, incompatible, buggy, unsupported CLR metadata parser (hopefully an interpreter in the future), implemented in Rust. Requires the nightly compiler.

What's implemented

  • PE executable parser
  • Some CLR metadata parsing
    • Image header
    • #Strings and #US string heaps
    • #~ header
    • Tagged/coded indices
    • The following metadata tables:
      • Module
      • TypeRef
      • TypeDef
      • MethodDef
      • MemberRef (MethodRef)
      • CustomAttribute
      • Assembly
      • AssemblyRef
  • That's pretty much it

Useful links

PE

Anatomy of a .NET assembly: PE headers

ImageHlp Structures

Peering Inside the PE: A Tour of the Win32 Portable Executable File Format

CLR

CLR ECMA Specification (335)

The .NET File Format

Anatomy of a .NET assembly: CLR metadata (series)

Existing implementations

License

Open source under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].