{"id":18023204,"url":"https://github.com/sn99/brainhug","last_synced_at":"2025-03-26T23:31:03.142Z","repository":{"id":48689084,"uuid":"163435951","full_name":"sn99/brainhug","owner":"sn99","description":"A simple brainfuck translator crate in Rust","archived":false,"fork":false,"pushed_at":"2023-05-24T04:24:14.000Z","size":66,"stargazers_count":21,"open_issues_count":2,"forks_count":12,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-22T17:22:55.774Z","etag":null,"topics":["brainfuck","crate","language","rust"],"latest_commit_sha":null,"homepage":"https://sn99.github.io/brainhug/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sn99.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2018-12-28T17:49:46.000Z","updated_at":"2025-02-18T09:39:53.000Z","dependencies_parsed_at":"2024-10-30T07:29:55.924Z","dependency_job_id":null,"html_url":"https://github.com/sn99/brainhug","commit_stats":{"total_commits":41,"total_committers":11,"mean_commits":3.727272727272727,"dds":0.7073170731707317,"last_synced_commit":"e21e1c91c698b0c10807fde3c698a8d4b2cb29e0"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sn99%2Fbrainhug","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sn99%2Fbrainhug/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sn99%2Fbrainhug/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sn99%2Fbrainhug/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sn99","download_url":"https://codeload.github.com/sn99/brainhug/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245753889,"owners_count":20666832,"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","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","crate","language","rust"],"created_at":"2024-10-30T07:08:25.579Z","updated_at":"2025-03-26T23:31:02.652Z","avatar_url":"https://github.com/sn99.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# brainhug\n\n[![Build Status](https://travis-ci.com/sn99/brainhug.svg?branch=master)](https://travis-ci.com/sn99/brainhug)\n[![Build status](https://ci.appveyor.com/api/projects/status/23dcr0k5u244qd3e?svg=true)](https://ci.appveyor.com/project/sn99/brainhug)\n[![Crates.io Download](https://img.shields.io/crates/d/brainhug.svg)](https://crates.io/crates/brainhug)\n[![crate](https://img.shields.io/crates/v/brainhug.svg)](https://crates.io/crates/brainhug)\n[![Documentation](https://docs.rs/brainhug/badge.svg)](https://docs.rs/brainhug)\n\n`brainhug` is a crate that is used to interpret brainf*ck code to any other language\n\n#### Current languages covered are :\n\n- [x] C\n- [x] C++\n- [x] C#\n- [x] Python\n- [x] Golang\n- [x] Haskell\n- [x] Lua\n- [X] JavaScript\n\n#### Why the name brainhug ?\n\nInspired from [link](https://lists.freedesktop.org/archives/dri-devel/2018-November/198581.html)\n\n## Usage\n\nAdd this to your `Cargo.toml`:\n\n```toml\n[dependencies]\nbrainhug = \"*\"\n```\n\nand this to your crate root:\n\n```rust\nextern crate brainhug;\n\nuse brainhug::Lang;\n```\n\n## Contributing\n\nRead [contributing](CONTRIBUTING.md) for Details\n\n## Example\n\n```rust\nextern crate brainhug;\n\nuse brainhug::Lang;\n\nfn main() {\n    // will print `Hello World!`\n    let input = \"++++++++[\u003e++++[\u003e++\u003e+++\u003e+++\u003e+\u003c\u003c\u003c\u003c-]\u003e+\u003e+\u003e-\u003e\u003e+[\u003c]\u003c-]\u003e\u003e.\u003e---.+++++++..+++.\u003e\u003e.\u003c-.\u003c.+++.------.--------.\u003e\u003e+.\u003e++.\";\n\n    // `brainhug::generate` will generate a `String`\n    println!(\"{}\", brainhug::generate(Lang::C, input));\n}\n```\n\n#### It will produce\n\n```c\n#include \"stdio.h\"\n\nint main() {\n    char tape[20000] = {0};\n    char *ptr = tape;\n        *ptr += 8;\n        while (*ptr) {\n                ptr += 1;\n                *ptr += 4;\n                while (*ptr) {\n                        ptr += 1;\n                        *ptr += 2;\n                        ptr += 1;\n                        *ptr += 3;\n                        ptr += 1;\n                        *ptr += 3;\n                        ptr += 1;\n                        *ptr += 1;\n                        ptr -= 4;\n                        *ptr -= 1;\n                }\n                ptr += 1;\n                *ptr += 1;\n                ptr += 1;\n                *ptr += 1;\n                ptr += 1;\n                *ptr -= 1;\n                ptr += 2;\n                *ptr += 1;\n                while (*ptr) {\n                        ptr -= 1;\n                }\n                ptr -= 1;\n                *ptr -= 1;\n        }\n        ptr += 2;\n        putchar(*ptr);\n        ptr += 1;\n        *ptr -= 3;\n        putchar(*ptr);\n        *ptr += 7;\n        putchar(*ptr);\n        putchar(*ptr);\n        *ptr += 3;\n        putchar(*ptr);\n        ptr += 2;\n        putchar(*ptr);\n        ptr -= 1;\n        *ptr -= 1;\n        putchar(*ptr);\n        ptr -= 1;\n        putchar(*ptr);\n        *ptr += 3;\n        putchar(*ptr);\n        *ptr -= 6;\n        putchar(*ptr);\n        *ptr -= 8;\n        putchar(*ptr);\n        ptr += 2;\n        *ptr += 1;\n        putchar(*ptr);\n        ptr += 1;\n        *ptr += 2;\n        putchar(*ptr);\n}\n```\n\n## License\n\nLicensed under\n\n* MIT license ([LICENSE.md](LICENSE.md) or http://opensource.org/licenses/MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsn99%2Fbrainhug","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsn99%2Fbrainhug","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsn99%2Fbrainhug/lists"}