{"id":13625953,"url":"https://github.com/rust-hosted-langs/book","last_synced_at":"2025-04-16T11:30:58.474Z","repository":{"id":38753414,"uuid":"130934992","full_name":"rust-hosted-langs/book","owner":"rust-hosted-langs","description":"Writing Interpreters in Rust: a Guide","archived":false,"fork":false,"pushed_at":"2025-01-23T02:41:10.000Z","size":3253,"stargazers_count":497,"open_issues_count":26,"forks_count":32,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-01-23T03:26:46.111Z","etag":null,"topics":["allocator","book","garbage-collection","interpreted-programming-language","rust"],"latest_commit_sha":null,"homepage":"https://rust-hosted-langs.github.io/book/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rust-hosted-langs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","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-04-25T01:44:22.000Z","updated_at":"2025-01-23T02:41:02.000Z","dependencies_parsed_at":"2024-01-07T21:04:56.813Z","dependency_job_id":"accb8bd5-35c6-4019-b033-c8a78078d19c","html_url":"https://github.com/rust-hosted-langs/book","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-hosted-langs%2Fbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-hosted-langs%2Fbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-hosted-langs%2Fbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-hosted-langs%2Fbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rust-hosted-langs","download_url":"https://codeload.github.com/rust-hosted-langs/book/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249235030,"owners_count":21235131,"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":["allocator","book","garbage-collection","interpreted-programming-language","rust"],"created_at":"2024-08-01T21:02:06.430Z","updated_at":"2025-04-16T11:30:58.080Z","avatar_url":"https://github.com/rust-hosted-langs.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# Writing Interpreters in Rust: a Guide\n\n![](https://github.com/rust-hosted-langs/book/workflows/code-test/badge.svg)\n\nThis is an online book covering the lower level topics involved in writing an\ninterpreter in Rust including:\n\n* memory management: allocation and garbage collection\n* compiling: expressions, functions, closures\n* virtual machines: bytecode, instruction dispatch\n\n\n## Project vision\n\nFrom CPython to Ruby's YARV, V8 and SpiderMonkey, GHC to the JVM, most language\nruntimes are written in C/C++.\n\nWe believe that Rust is eminently suitable for implementing languages and can\nprovide significant productivity improvements over C and C++ while retaining\nthe performance advantages and low level control of both.\n\nWhile there are a number of languages implemented in Rust available now, in\nvarying states of completeness - interpreters, AOT compilers and\nJIT-compiled - our vision is singular:\n\n_To create a well documented reference compiler and runtime,\npermissively licensed, such that you can fork and morph it into your own\nprogramming language._\n\nThat is, a platform for bootstrapping other languages, written in Rust.\nTo that end, the implementation provided here is not intended to be feature\ncomplete and cannot possibly represent every variation of programming\nlanguage or local optimization.\n\nIt is a lofty goal, and it certainly won't be the right approach for\neverybody. However, we hope it will help shift the landscape in favor of more\nmemory-safe language implementations.\n\n\n## Getting involved\n\nSee `CONTRIBUTING.md` for licensing and how to get involved.\n\n\n## The contents\n\nThe rendered book can be read [here](https://rust-hosted-langs.github.io/book/)\nwhile the accompanying source code can be browsed in this repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-hosted-langs%2Fbook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frust-hosted-langs%2Fbook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-hosted-langs%2Fbook/lists"}