Rust X86

Open-source Rust projects categorized as X86

Top 14 Rust X86 Projects

  • v86

    x86 PC emulator and x86-to-wasm JIT, running in the browser

    Project mention: The longest word you can type on the first row of a QWERTY keyboard | news.ycombinator.com | 2023-08-24

    You can play with MS-DOS 6.22 in a virtual-machine-in-browser here[1]. That VM comes with Vim (non-standard) so use Vim or Edit to create a word list and save as c:\words.txt. Then yype all this code into a batch file using `edit run.bat` and then run it with `run %1`. MS-DOS 6.22 came with QBASIC so I think that's allowed; I tried to avoid it but wasn't able to. NB. DOS is way less capable than Windows cmd prompt so there's no `for /f` or anything. "Dir /OS /B" sorts files by size and that view will leave the largest files on screen as the answer. The files will be one per word, containing the word so the size in bytes is the word length and the filename is the word to see it in the file listing. The words will be echoed into the files by a helper batch file containing `echo %1 > %1`. Building the helper batch file is hard because echo cannot echo > into a file. The qwerty filtering is a chain of `find /V "a"` for excluding each of the other rows cough. I then couldn't loop over the file lines without QBASIC.

    [1] https://copy.sh/v86/?profile=msdos

    If you never used MS-DOS classic, try "edit test.txt" and see how it has a nice TUI, where Alt+F brings up the File menu, the brightly coloured letters are the hotkeys, so Alt+F, X will quit. Shift+Down will select a line, Shift+Delete to cut and Shift+Insert to paste. Ctrl+left/right arrows to jump forward/back a word, Ctrl+Shift+Left/Right to select a word. 29 years later those keyboard patterns still work in this FireFox editor, in current notepad, WordPad and Word, and in my muscle memory. Escape tends to exit back out of popups and menus. Quit and try "help date" and see the TUI help, where the green angle brackets are hyperlinks and can be TAB'ed between, Enter to activate and Escape back. F1 is still the help key, only it actually showed offline help back then instead of doing a Bing search for 'get help in notepad'. Quit and run QBasic, see how F5 runs the code.

    [2] by Geoff Cutter: https://groups.google.com/g/alt.msdos.batch/c/Ozg2C-ANCqI

    [3] Phil Robyn's QBASIC loop sample https://groups.google.com/g/alt.msdos.batch/c/44NbdZJ2-p4/m/...

  • cross

    “Zero setup” cross compilation and “cross testing” of Rust crates

    Project mention: How to cross Compile on Debian for: Mac / FreeBSD / OpenBSD / Android ... ? | /r/rust | 2023-07-11

    I cross compile to Mac, bsd, windows, etc cross ... Works great for me with either docker or podman.

  • Mergify

    Updating dependencies is time-consuming.. Solutions like Dependabot or Renovate update but don't merge dependencies. You need to do it manually while it could be fully automated! Add a Merge Queue to your workflow and stop caring about PR management & merging. Try Mergify for free.

  • iced

    Blazing fast and correct x86/x64 disassembler, assembler, decoder, encoder for Rust, .NET, Java, Python, Lua (by icedland)

    Project mention: Dll Injection and Native Hooking with .NET | /r/csharp | 2023-06-02

    I've worked with Iced .NET Assembler in the past, and it shouldn't be too much trouble to use it make a trampoline.

  • static-web-server

    A cross-platform, high-performance and asynchronous web server for static files-serving. ⚡

    Project mention: Best Practice For Serving Static (Frontend) Files with NGINX in K8s? | /r/kubernetes | 2023-07-09

    I swapped to static-web-server for exclusively static files, it's only 4MB and its envvars are much easier than nginx's config files

  • martypc

    An IBM PC/XT emulator written in Rust.

    Project mention: A Test Suite for the Intel 8088 | news.ycombinator.com | 2023-09-05

    I was a little confused why anyone would need or care for a cycle accurate 8088 emulator, but there's some answers on github. https://github.com/dbalsom/martypc

  • udbserver

    Unicorn Emulator Debug Server - Written in Rust, with bindings for C, Go, Java and Python

  • steg86

    Hiding messages in x86 programs using semantic duals

    Project mention: Weird things I learned while writing an x86 emulator | news.ycombinator.com | 2023-02-02

    This is a good list! Another fun quirk: because x86 is a register-memory architecture and allows all kinds of variants of reg/mem operand encodings, there are a handful of equivalent encodings with exactly the same lengths (and just slightly different ModR/M bytes). You can take advantage of this to do software fingerprinting or, in my case, steganography without changing an executable’s size or semantics[1].

    [1]: https://github.com/woodruffw/steg86

  • InfluxDB

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.

  • lineiform

    A meta-JIT library for Rust interpreters

    Project mention: JITting functions in Rust for runtime performance flexibility | /r/rust | 2022-12-16

    Sounds similar to lineiform. Which isn't all that stable or actively developed, but it is a cute approach to writing a meta-jit in rust. It's a weird approach, but IMO it's worth more experimentation.

  • syscall.rs

    Raw system calls for Rust (by japaric)

    Project mention: A toy std::fs impl that does not need libc | /r/rust | 2023-05-08

    I made a toy std::fs implementation that does not depend on libc, i.e., using Raw Syscall. There are some voices in the community stating that we should make the standard library opt out of libc for better performance, so I decided to give it a try and wanna know if I could impl such stuff by myself.

  • xgadget

    Fast, parallel, cross-variant ROP/JOP gadget search for x86/x64 binaries.

  • dream86

    dream86 - x86/PC emulator

  • bfc-rs

    Brainfuck compiler for x86-64 Linux implemented in Rust.

  • ThanOS

    My try on a very basic OS. (by Einliterflasche)

  • Sapphire

    An x86 Operating System in Rust and Assembly (by AlexDev404)

    Project mention: How to seriously get started? | /r/osdev | 2023-03-21

    If you're interested in Rust take a look at this repository I found which uses Rust without the usual bootloader library https://github.com/alexdev404/sapphire/tree/hello-rust

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-09-05.

Rust X86 related posts

Index

What are some of the best open-source X86 projects in Rust? This list will help you:

Project Stars
1 v86 18,220
2 cross 5,022
3 iced 2,454
4 static-web-server 825
5 martypc 364
6 udbserver 284
7 steg86 260
8 lineiform 155
9 syscall.rs 88
10 xgadget 53
11 dream86 22
12 bfc-rs 3
13 ThanOS 1
14 Sapphire 0
Static code analysis for 29 languages.
Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.
www.sonarqube.org