All Projects → kvakvs → Erlangrt

kvakvs / Erlangrt

Licence: other
Erlang Replacement Therapy. Another attempt to make Erlang runtime (BEAM emulator) in Rust. Good news: I know what to do. Bad news: I have no clue how to Rust

Programming Languages

rust
11053 projects
erlang
1774 projects

Labels

Projects that are alternatives of or similar to Erlangrt

Unityruntimespritesheetsgenerator
Unity – generate SpriteSheets at runtime!
Stars: ✭ 286 (-46.14%)
Mutual labels:  runtime
Ttpatch
热修复、热更新、JS代码动态下发、动态创建类
Stars: ✭ 372 (-29.94%)
Mutual labels:  runtime
Ph7
An Embedded Implementation of PHP (C Library)
Stars: ✭ 422 (-20.53%)
Mutual labels:  runtime
Aecor
Pure functional event sourcing runtime
Stars: ✭ 299 (-43.69%)
Mutual labels:  runtime
Ts Runtime
Runtime Type Checks for TypeScript
Stars: ✭ 354 (-33.33%)
Mutual labels:  runtime
Golang runtime reading
golang 1.10.2 runtime code reading - golang runtime源码分析。只有思考过,你才会印象深刻。
Stars: ✭ 393 (-25.99%)
Mutual labels:  runtime
Runtimesummary
一个集合了常用 Objective-C Runtime 使用方法的 Playground。
Stars: ✭ 281 (-47.08%)
Mutual labels:  runtime
Enforce
Python 3.5+ runtime type checking for integration testing and data validation
Stars: ✭ 502 (-5.46%)
Mutual labels:  runtime
Anymethodlog
Log any method call of object in Objective-C
Stars: ✭ 361 (-32.02%)
Mutual labels:  runtime
Actix Net
A collection of lower-level libraries for composable network services.
Stars: ✭ 415 (-21.85%)
Mutual labels:  runtime
Weave
A state-of-the-art multithreading runtime: message-passing based, fast, scalable, ultra-low overhead
Stars: ✭ 305 (-42.56%)
Mutual labels:  runtime
Objc4
A latest buildable and debuggable Objective-C runtime (objc4-818.2) project.
Stars: ✭ 331 (-37.66%)
Mutual labels:  runtime
Android Runtime
Android runtime for NativeScript (based on V8)
Stars: ✭ 399 (-24.86%)
Mutual labels:  runtime
Ios Runtime
iOS Runtime for NativeScript
Stars: ✭ 288 (-45.76%)
Mutual labels:  runtime
Vercel Php
▲ Vercel PHP runtime • vercel-php • now-php • 🐘+ λ = ❤
Stars: ✭ 429 (-19.21%)
Mutual labels:  runtime
Cortex M Rt
Minimal startup / runtime for Cortex-M microcontrollers
Stars: ✭ 286 (-46.14%)
Mutual labels:  runtime
Uwebsockets.js
μWebSockets for Node.js back-ends 🤘
Stars: ✭ 4,552 (+757.25%)
Mutual labels:  runtime
Go Runtime Metrics
Collect Golang Runtime Metrics, outputting to a stats handler
Stars: ✭ 501 (-5.65%)
Mutual labels:  runtime
Io Ts
Runtime type system for IO decoding/encoding
Stars: ✭ 5,086 (+857.82%)
Mutual labels:  runtime
Macroable
A trait to dynamically add methods to a class
Stars: ✭ 415 (-21.85%)
Mutual labels:  runtime

.. image:: https://app.fossa.io/api/projects/git%2Bgithub.com%2Fkvakvs%2FErlangRT.svg?type=shield :target: https://app.fossa.com/projects/git%2Bgithub.com%2Fkvakvs%2FErlangRT?ref=badge_shield

ErlangRT - Runtime

Erlang Replacement Therapy. This is an attempt to make Erlang runtime (BEAM emulator) in Rust. This is not the first attempt so I kinda know what I'm doing.

Progress to the Proof of Concept

  • Term library 80% (remaining 80% are in progress)
  • External Term Format (decoder 70%, encoder 0%)
  • BEAM Loader - mostly done
  • VM and processes 40%
  • VM loop and opcodes 45% (74 of 168)
  • Some basic BIFs <15%
  • Binaries, sub-binaries, binary heap, binary opcodes: <20%

.. figure:: http://imgur.com/H5qypZG.png :scale: 50% :alt: Trying to run init:boot/1

Tests in priv/test2.erl work. Running make test tries to run init:boot/1 and produces the output above.

Compiling


* The source assumes that you have Erlang OTP 22+ source in a Git submodule in ``otp/``,
  and the stdlib and preload BEAM files are compiled and ready. Makefile takes care of it.
* Install latest **Rust** and **Cargo** via `Rustup <http://doc.crates.io/>`_
* Run ``make`` and with the magic of Bash autocomplete see which targets it
  supports. You might like:
    * ``make run`` - runs the executable with test args, whatever set by the developer,
      do not expect it to show any magical tricks;
    * ``make doc`` - builds doc pages in ``target/doc/erlang_rt/``
    * ``make test`` - runs the tests
    * ``make build`` and ``make build-rel`` - builds but does not run the debug and
      the release target respectively
      
Currently the emulator expects to have preloaded BEAM modules from OTP 22+ located in `otp/`
Git submodule (Makefile takes care of it).

Editing and Code Navigation

I am using and strongly recommend IntelliJ IDEA CE (free version) with IntelliJ-Rust plugin (available in repositories tab inside IntelliJ).

Reference Material


* `BEAM Wisdoms <http://beam-wisdoms.clau.se/>`_ (I run this one)
* `The BEAM book <https://github.com/happi/theBeamBook>`_
  (I am also one of the editors there)

Contributing
````````````

See ``CONTRIBUTING.rst``


License Inspection
------------------

.. image:: https://app.fossa.io/api/projects/git%2Bgithub.com%2Fkvakvs%2FErlangRT.svg?type=large
    :target: https://app.fossa.com/projects/git%2Bgithub.com%2Fkvakvs%2FErlangRT?ref=badge_large
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].