All Projects → x4e → classfile-rs

x4e / classfile-rs

Licence: MIT license
JVM classfile parser and writer for Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to classfile-rs

Android
Swift library for Android
Stars: ✭ 48 (+77.78%)
Mutual labels:  jvm
SourceCodeSummary
个人笔记(编译/性能优化/framework/音视频/flutter)
Stars: ✭ 18 (-33.33%)
Mutual labels:  jvm
java-sdk
一些常用的java sdk和工具类(日期工具类,分布式锁,redis缓存,二叉树,反射工具类,线程池,对称/非对称/分段加解密,json序列化,http工具,雪花算法,字符串相似度,集合操作工具,xml解析,重试Retry工具类,Jvm监控等)
Stars: ✭ 26 (-3.7%)
Mutual labels:  jvm
play-java-fileupload-example
An example Play application showing custom multiform fileupload in Java
Stars: ✭ 13 (-51.85%)
Mutual labels:  jvm
awesome-eta
⭐ Useful resources for the Eta programming language
Stars: ✭ 59 (+118.52%)
Mutual labels:  jvm
stuff
All stuff in a single repo (tests, ideas, benchmarks)
Stars: ✭ 13 (-51.85%)
Mutual labels:  jvm
jiface
A Clojure-idiomatic wrapper around Erlang's JInterface
Stars: ✭ 27 (+0%)
Mutual labels:  jvm
java-notes
自己的学习笔记。包含:个人秋招经历、🐂客面经问题按照频率总结、Java一系列知识、数据库、分布式、微服务、前端、技术面试、每日文章等(持续更新)
Stars: ✭ 1,560 (+5677.78%)
Mutual labels:  jvm
openj9
Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Stars: ✭ 2,973 (+10911.11%)
Mutual labels:  jvm
setup-action
▶️ GitHub Action using Coursier to install JVM and Scala tools
Stars: ✭ 30 (+11.11%)
Mutual labels:  jvm
SquirrelJME
SquirrelJME is a Java ME 8 Virtual Machine for embedded and Internet of Things devices. It has the ultimate goal of being 99.9% compatible with the Java ME standard.
Stars: ✭ 148 (+448.15%)
Mutual labels:  jvm
Notes
This is a learning note | Java基础,JVM,源码,大数据,面经
Stars: ✭ 69 (+155.56%)
Mutual labels:  jvm
play-java-seed.g8
Play Java Seed template: use "sbt new playframework/play-java-seed.g8"
Stars: ✭ 20 (-25.93%)
Mutual labels:  jvm
jvm.js
A Java VM bytecode library written in ES6 for Node.js
Stars: ✭ 33 (+22.22%)
Mutual labels:  jvm
clojang
Clojure API for Erlang/OTP Communications (built on jiface)
Stars: ✭ 61 (+125.93%)
Mutual labels:  jvm
Blog
Where I write stuff.
Stars: ✭ 25 (-7.41%)
Mutual labels:  jvm
archimedes-jvm
Archimedes's implementation for the Java Virtual Machine (JVM)
Stars: ✭ 24 (-11.11%)
Mutual labels:  jvm
LearningNotes
Java学习笔记,主要来源于B站上视频的学习,同时会记录平时一些学习和项目中遇到的问题,同步更新在蘑菇博客,如果对我的博客网站感兴趣的话,欢迎关注我的 蘑菇博客项目 笔记主要涵盖:Java,Spring,SpringCloud,计算机网络,操作系统,数据结构,Vue等 如果笔记对您有帮助的话,欢迎star支持,谢谢~
Stars: ✭ 477 (+1666.67%)
Mutual labels:  jvm
play-scala-log4j2-example
An example Play project using Log4J 2 as the logging engine
Stars: ✭ 14 (-48.15%)
Mutual labels:  jvm
JavaNewBee
Java 从小白到大牛,涵盖Java 基础、进阶、面试要点等核心要点,助你一臂之力。
Stars: ✭ 84 (+211.11%)
Mutual labels:  jvm

classfile-rs

Speedy class file implementation for rust

This is a library for reading, manipulating, and writing class files.

Goals:

  • Simple, abstract AST
  • Stackmap frame generation
  • Resistant to malicious/malformed class files

The AST is designed to be more logical and intuitive to a Java developer than the official bytecode specification.

For example, iconst_0s are represented as ldc(0)s, invokestatic(...)s are represented as invoke(static, ...). Bytecode offsets are also transformed into labels. The constant pool is fully abstracted.

Todos:

  • Stackmap frame generation
  • Class writing (Feel free to contribute on these)

Speed

The library should take <1ms to read an averagely sized class file, but can take longer depending on the amount of control flow within the class (Label reading is not optimal at the moment).

Here is a benchmark: Throughput benchmark

Examples

Reading a class file

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].