yabf_rs

Crates.ioyabf_rs
lib.rsyabf_rs
version0.1.2
sourcesrc
created_at2023-02-09 17:01:29.918549
updated_at2023-02-09 19:55:32.684729
description A simple crate that can be used to embed Brainfuck programs into your Rust programs.
homepage
repositoryhttps://github.com/serd223/yabf
max_upload_size
id780884
size26,579
serd (serd223)

documentation

https://docs.rs/yabf_rs

README

Yet Another Brainfuck Interpreter

Crate API

yabf_rs is a simple crate that can be used to embed Brainfuck programs into your Rust programs. Documentation on docs.rs

Features

  • Can parse and execute Brainfuck code.
  • Highly customizable IO system.
  • Allows you to inspect/modify data about your program during runtime.

Basic example

The following program outputs the letter 'H' to the terminal.

use yabf_rs::*;
fn main() {
    let program = Program::from(">++++++++[<+++++++++>-]<.");
    let mut bf = BfInstance::from(program);
    bf.run(&mut default_input_source, &mut default_flush);
}

More examples

For more examples, look at the examples directory in the repository.

Running examples

Prerequisites

git clone https://github.com/serd223/yabf
cd yabf
cargo run --example hello_world

Example projects written using yabf_rs

yabf_cli

  • yabf_cli is a simple command line tool for debugging/running Brainfuck code.

yabf_gui

  • yabf_gui is a proof of concept project that uses egui with the eframe framework for the GUI part.

Adding yabf_rs to your project

cargo add yabf_rs

Why yabf_rs instead of just yabf?

yabf was already taken...

Commit count: 34

cargo fmt