Skip to content

Deadbytes101/DBYTE

Repository files navigation

DBYTEOS Logo

THE DBYTE PROGRAMMING LANGUAGE

[ Official Site ]  [ About ]  [ Features ]  [ BENCHMARKS ]  [ DOCUMENTATION ]

Try the DByte ISO Discord ⭐ STARS MIT LICENSE

DByte is a fast low-level scripting language for binary parsing, buffer patching, byte search, typed integer work, and automation scripts that need simple syntax with predictable performance.

Built for byte-level jobs. Not for hype. Not for framework circus. Just open the data, hit the buffer, patch what needs patching, and ship.

Public Alpha — Expect breaking changes before stable release.

Caution

Warning: This OS is experimental. Run it in a VM if you value your data.

Features

  • Low-level scripting focused on binary parsing, buffer patching, byte search, and typed integer work
  • Statically checked, Python-like syntax with a bytecode VM
  • bytes and mutable buffer data types with powerful stdlib
  • DByteOS userland experiments (host-runnable, not a full OS)
  • Handmade, minimal, direct — no framework bloat

Highlights

  • Project workflow with Dbyte.toml
  • Binary stdlib for endian-aware operations
  • Buffer stdlib (load, save, find, replace, slice, etc.)
  • Built-in test runner: dbyte test
  • Interactive REPL + real DByte-native shell
  • Personal tools for hexdump, patching, binary inspection

Getting Started

  1. Try the ISO (VM recommended): Download Latest ISO
  2. Read the docs: https://dbytelang.site/docs/
  3. Try MusicPlayers: bytedeck

Quick Start

dbyte --version
dbyte repl
dbyte shell
dbyte run examples/hello.dby
dbyte test

Launch DByteOS Shell

dbyte shell --rc examples/dbyteos/.dbyterc

Example: Binary Patch

import std.buffer as buf
import std.fs as fs

let b: buffer = buf.load("sample.bin")
let pos: int = buf.find(b, b"\xDE\xAD\xBE\xEF")

if pos >= 0:
buf.replace(b, pos, b"\x90\x90\x90\x90")
buf.save("sample.patched.bin", b)

Personal Tools

personal_tools/ — hexdump, bininfo, find-bytes, patch-bytes, u32-table

Run with shortcuts inside the shell: hexdump, patch-bytes, etc.

Embedding DByte

Rust host applications can embed the tree runtime through dbyte_embed:

use dbyte_embed::DByteRuntime;

fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut rt = DByteRuntime::new();

rt.run_source("host", "let x: int = 40")?;
let out = rt.run_source_capture("host", "print(x + 2)")?;

assert_eq!(out.stdout.trim(), "42");
Ok(())
}

The embed API uses persistent tree-interpreter state and does not auto-load .dbyterc; host applications opt into startup scripts with load_rc().

Repository & Contact


This is alpha software. Run in VM if you value your data.

About

DBYTE IS A FAST LOW LEVEL SCRIPTING LANGUAGE FOR BINARY PARSING BUFFER PATCHING BYTE SEARCH TYPED INTEGER WORKLOADS AND AUTOMATION SCRIPTS THAT NEED SIMPLE SYNTAX WITH PREDICTABLE PERFORMANCE

Topics

Resources

License

Stars

Watchers

Forks

Contributors