{"id":17038992,"url":"https://github.com/dcnick3/oc-wasm-gtnh","last_synced_at":"2026-05-10T16:15:20.142Z","repository":{"id":175693414,"uuid":"654142868","full_name":"DCNick3/OC-Wasm-GTNH","owner":"DCNick3","description":"A fork of https://gitlab.com/Hawk777/oc-wasm to port it to GTNH modpack","archived":false,"fork":false,"pushed_at":"2024-03-31T18:00:18.000Z","size":431,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"gtnh","last_synced_at":"2025-03-22T23:44:47.785Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DCNick3.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-15T13:26:41.000Z","updated_at":"2025-03-11T11:29:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"3b752657-782a-4387-80f9-f0a3855d0447","html_url":"https://github.com/DCNick3/OC-Wasm-GTNH","commit_stats":null,"previous_names":["dcnick3/oc-wasm-gtnh"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/DCNick3/OC-Wasm-GTNH","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DCNick3%2FOC-Wasm-GTNH","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DCNick3%2FOC-Wasm-GTNH/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DCNick3%2FOC-Wasm-GTNH/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DCNick3%2FOC-Wasm-GTNH/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DCNick3","download_url":"https://codeload.github.com/DCNick3/OC-Wasm-GTNH/tar.gz/refs/heads/gtnh","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DCNick3%2FOC-Wasm-GTNH/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271242099,"owners_count":24724978,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T08:58:21.939Z","updated_at":"2026-05-10T16:15:15.120Z","avatar_url":"https://github.com/DCNick3.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"Overview\n========\n\nOC-Wasm is a CPU architecture for [OpenComputers](https://oc.cil.li/) which\nexecutes [WebAssembly](https://webassembly.org/) binaries.\n\n\nGetting Started\n===============\n\nTo get a basic “hello world”-type application running with OC-Wasm, you’ll need\nto follow a few steps:\n\n* Build a computer. OC-Wasm doesn’t add any new items; instead, you use the\n  standard OpenComputers items, just as if you were building a Lua computer.\n  After crafting the CPU or APU, hold it in your hand and Shift-Right-Click to\n  switch architectures—just like you would to switch between Lua 5.2 and\n  5.3—and you should see WebAssembly in the list.\n* All computers need a BIOS, and WebAssembly computers are no different. If\n  your program is very small (≤4 kiB), you can put it directly on an EEPROM and\n  use it as a BIOS directly. Usually, though, your program will be too big to\n  fit on an EEPROM, so you’ll want a BIOS which can load your program from\n  disk. [OC-Wasm-BIOS](https://gitlab.com/Hawk777/oc-wasm-bios/) does just\n  that: it loads a program from `/init.wasm` on a disk (just like the Lua BIOS\n  loads a program from `/init.lua`). Since there’s no craftable item that comes\n  with a BIOS, you’ll need to download the BIOS onto an existing computer\n  (presumably running Lua, e.g. via `wget`) and flash it onto an EEPROM (e.g.\n  via `flash`).\n* Create your application. You’ll probably do this outside Minecraft, using\n  regular software development tools. Once you’ve compiled a `.wasm` file, name\n  it `init.wasm` and place it in the root directory of a hard drive or floppy\n  disk. This can be done a few different ways:\n  * Upload your program to the Internet, put the disk in a working computer,\n    download the file to it with `wget`, and move the disk to the new computer.\n  * Place the file directly in the proper place in your Minecraft save game\n    directory, if you have access to it. You probably want to set\n    `bufferChanges` to `false` in the `filesystem` section of your\n    OpenComputers config file if you’re regularly using this method.\n* Boot your computer!\n\n\nWorking in Rust\n===============\n\nA number of crates are available to make writing OC-Wasm programs in Rust\nergonomic:\n\n* [OC-Wasm-Cassette](https://crates.io/crates/oc-wasm-cassette) provides an\n  easy way to use the Cassette async executor to run an `async fn` as your main\n  function.\n* [OC-Wasm-Sys](https://crates.io/crates/oc-wasm-sys) is a set of raw FFI\n  bindings. You probably don’t want to use this crate directly, but it\n  underpins all the other ones.\n* [OC-Wasm-Safe](https://crates.io/crates/oc-wasm-safe) is a set of wrappers\n  around OC-Wasm-Sys that provide memory safety, safe handling of opaque value\n  descriptors, and mutual exclusion over system calls that cannot be invoked\n  multiple times simultaneously.\n* [OC-Wasm-Futures](https://crates.io/crates/oc-wasm-futures) is a set of async\n  futures that make it easier to write an OC-Wasm program using `async` and\n  `await`.\n* [OC-Wasm-OpenComputers](https://crates.io/crates/oc-wasm-opencomputers) is a\n  set of high-level wrappers around the component APIs supported by ordinary\n  OpenComputers (such as the redstone API, the filesystem API, the GPU API,\n  etc.).\n\nAs of this writing, `OC-Wasm-OpenComputers` is incomplete, and there are no\ncrates for high-level wrappers around other mods that can interact with\nOpenComputers (e.g. via the adapter block); however, community contributions\n(in the form of merge requests to `OC-Wasm-OpenComputers` or new crates for\ncontent from mods) are very welcome!\n\n\nWorking in Zig\n===============\n\nAmandaC from the OpenComputers community has started early work on [a\nrepository with a Zig library and a few small examples for\nOC-Wasm](https://git.camnet.site/amandac/ocwasm-zig).\n\n\nTechnical Details\n=================\n\nIf you want to work in a language which doesn’t already have support libraries,\nor you’re just curious how things work under the hood, please have a look at\n[the OC-Wasm Javadoc](https://hawk777.gitlab.io/oc-wasm/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcnick3%2Foc-wasm-gtnh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdcnick3%2Foc-wasm-gtnh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcnick3%2Foc-wasm-gtnh/lists"}