{"id":16577579,"url":"https://github.com/this/jbf","last_synced_at":"2026-06-06T19:31:21.355Z","repository":{"id":92877362,"uuid":"262707129","full_name":"this/jbf","owner":"this","description":"A Brainf*ck implementation on top of the JVM, utilizing GraalVM and Truffel framework","archived":false,"fork":false,"pushed_at":"2020-10-28T09:26:38.000Z","size":84,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-05T20:25:19.694Z","etag":null,"topics":["brainfuck","brainfuck-compiler","graalvm","java","jvm","jvm-languages","truffle"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/this.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-10T03:50:48.000Z","updated_at":"2020-06-24T06:59:45.000Z","dependencies_parsed_at":"2023-05-15T00:00:44.485Z","dependency_job_id":null,"html_url":"https://github.com/this/jbf","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/this/jbf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/this%2Fjbf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/this%2Fjbf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/this%2Fjbf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/this%2Fjbf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/this","download_url":"https://codeload.github.com/this/jbf/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/this%2Fjbf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33997732,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-06T02:00:07.033Z","response_time":107,"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":["brainfuck","brainfuck-compiler","graalvm","java","jvm","jvm-languages","truffle"],"created_at":"2024-10-11T22:11:28.506Z","updated_at":"2026-06-06T19:31:21.331Z","avatar_url":"https://github.com/this.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jBF - Brainf\\*ck on JVM\nA Brainf\\*ck implementation on top of the JVM, utilizing GraalVM and Truffel framework.\n\n![Build Bot](https://github.com/this/jbf/workflows/Build%20Bot/badge.svg?branch=master\u0026event=push)\n\n[Brainf\\*ck](https://en.wikipedia.org/wiki/Brainfuck) is a turing complete [esoteric programming language](https://en.wikipedia.org/wiki/Esoteric_programming_language) that is famous for its extreme minimalism. This project implements Brainf\\*ck language using [Truffel framework](https://github.com/oracle/graal/tree/master/truffle) for the [GraalVM](https://www.graalvm.org/)\n\n## Getting started\n### Prerequisites\n- [Maven 3.x](https://maven.apache.org/download.cgi)\n\n### Installation\nThis project works with GraalVM `v20.0.0` version (or higher `v20.x.x`) which can be downloaded from [here](https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-20.0.0). Follow [these instructions](https://www.graalvm.org/getting-started/#install-graalvm) to install it. Make sure that `$JAVA_HOME` environment variable point to the Graal installation and `$JAVA_HOME/bin` in the `$PATH`.\n\n### Building the project\nExecute `mvn clean package` to build the project.\n\n### Running a Brainf\\*ck program\n`$ sh ./bf path/to/program.bf`\n\n### Building a native binary\nNative binary generation is done with the `native-image` utility, which is not bundled by default with the Graal distribution. Follow [these instructions](https://www.graalvm.org/docs/reference-manual/native-image/#install-native-image) to install it.\n\nAfter installing, execute `mvn clean package -P native` which will create the binary in the `./modules/launcher/target` directory.\n\n## Project structure\n- **language** module - contains the Brainf\\*ck language implementation\n- **launcher** module - contains the command line launcher\n\n## Resources\nFollowing resources was very helpful for this project.\n- [Writing a Language in Truffle](http://cesquivias.github.io/blog/2014/10/13/writing-a-language-in-truffle-part-1-a-simple-slow-interpreter/) by Cristian Esquivias\n- [Building a programming language on GraalVM](https://maarten.mulders.it/2019/10/building-a-programming-language-on-graalvm-part-1/) by Maarten Mulders\n- [SimpleLanguage](https://github.com/graalvm/simplelanguage) - A simple demonstration language built using Truffle for the GraalVM\n- [TruffleSqueak](https://github.com/hpi-swa/trufflesqueak) - A Squeak/Smalltalk implementation for the GraalVM\n- [Truffle BF](https://github.com/chumer/bf/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthis%2Fjbf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthis%2Fjbf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthis%2Fjbf/lists"}