{"id":13439963,"url":"https://github.com/ptal/oak","last_synced_at":"2025-12-25T08:57:07.423Z","repository":{"id":18364188,"uuid":"21544421","full_name":"ptal/oak","owner":"ptal","description":"A typed parser generator embedded in Rust code for Parsing Expression Grammars","archived":false,"fork":false,"pushed_at":"2021-01-12T21:09:19.000Z","size":954,"stargazers_count":142,"open_issues_count":18,"forks_count":14,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-10-08T08:52:12.040Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","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/ptal.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}},"created_at":"2014-07-06T17:04:18.000Z","updated_at":"2024-08-03T06:24:35.000Z","dependencies_parsed_at":"2022-08-10T23:50:13.836Z","dependency_job_id":null,"html_url":"https://github.com/ptal/oak","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/ptal%2Foak","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptal%2Foak/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptal%2Foak/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptal%2Foak/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ptal","download_url":"https://codeload.github.com/ptal/oak/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221745202,"owners_count":16873735,"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":[],"created_at":"2024-07-31T03:01:18.540Z","updated_at":"2025-12-25T08:57:07.410Z","avatar_url":"https://github.com/ptal.png","language":"Rust","readme":"# Oak\n\n[![ptal on Travis CI][travis-image]][travis]\n\n[travis-image]: https://travis-ci.org/ptal/oak.png\n[travis]: https://travis-ci.org/ptal/oak\n\nCompiled on the nightly channel of Rust. Use [rustup](http://www.rustup.rs) for managing compiler channels.\nYou can download and set up the exact same version of the compiler used with `rustup override add 2021-01-06`.\n\nPlease consult the [Oak manual](https://ptal.github.io/oak/index.html).\n\n## Features\n\n* *Easy to install*: PEG grammar description as a Rust procedural macro.\n* *User-friendly*: most of the types are automatically inferred from the parsing expressions.\n* *Safe*: Well-formedness analysis guarantees termination.\n* *Modular*: External parser rules can be called at any time.\n* *Fast*: Generation of both recognizer and parser functions for each rule.\n\n## Build local documentation\n\nYou might want to build the manual or code documentation from the repository because you need it to be synchronized with a specific version of Oak or simply for offline usage. Here how to do it!\n\n#### Build the manual\n\nYou need the utility [mdbook](https://rust-lang.github.io/mdBook/):\n\n```\ncargo install mdbook\n```\n\nOnce installed, go inside `oak/doc` and execute `mdbook build -o`.\nThe manual is generated inside a local folder named `book` and directly opened in your browser.\n\n#### Build the code documentation\n\nAs a user of Oak, you will be interested by the runtime documentation.\n\n```\ncd oak/runtime\ncargo doc\n```\n\nThe documentation is then available in `oak/runtime/target/doc`.\n\nTo build the internal documentation of Oak, you can type this command at the root of the project:\n\n```\ncd oak\nrustdoc --document-private-items --output=target/dev-doc src/liboak/lib.rs\n```\n\nThe documentation will be available inside `oak/target/dev-doc`.\nIt is useful to work on Oak :-)\n","funding_links":[],"categories":["Libraries","库 Libraries","库","Rust"],"sub_categories":["Parsing","Parser","解析 Parsing","解析","Other dialects and variants","Parsers"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fptal%2Foak","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fptal%2Foak","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fptal%2Foak/lists"}