{"id":25859159,"url":"https://github.com/bikossor/rudus","last_synced_at":"2025-03-01T20:39:44.303Z","repository":{"id":39672275,"uuid":"312028204","full_name":"Bikossor/Rudus","owner":"Bikossor","description":"Parser combinator library for TypeScript.","archived":false,"fork":false,"pushed_at":"2024-09-05T17:39:13.000Z","size":1353,"stargazers_count":4,"open_issues_count":5,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-24T12:12:08.603Z","etag":null,"topics":["functional-parsing","hacktoberfest","javascript","node-js","nodejs","parser","parser-combinators","typescript"],"latest_commit_sha":null,"homepage":"https://rudus.pages.dev/","language":"TypeScript","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/Bikossor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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-11-11T16:33:50.000Z","updated_at":"2024-06-15T16:08:23.000Z","dependencies_parsed_at":"2023-02-15T13:15:37.964Z","dependency_job_id":"40a0a5d2-4ce5-46ee-a19b-11ceb81a268d","html_url":"https://github.com/Bikossor/Rudus","commit_stats":{"total_commits":159,"total_committers":2,"mean_commits":79.5,"dds":0.2075471698113207,"last_synced_commit":"a5e8d15652c3d6822021075a1dc020fe7f33e90c"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bikossor%2FRudus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bikossor%2FRudus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bikossor%2FRudus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bikossor%2FRudus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bikossor","download_url":"https://codeload.github.com/Bikossor/Rudus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241423006,"owners_count":19960607,"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":["functional-parsing","hacktoberfest","javascript","node-js","nodejs","parser","parser-combinators","typescript"],"created_at":"2025-03-01T20:39:43.729Z","updated_at":"2025-03-01T20:39:44.297Z","avatar_url":"https://github.com/Bikossor.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./docs/assets/Rudus-Logo.svg\" height=\"120px\"/\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eRudus\u003c/h1\u003e\n\u003cp align=\"center\"\u003eParser combinator library for TypeScript.\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Bikossor/Rudus/actions/workflows/codeql-analysis.yml/badge.svg\"/\u003e\n  \u003cimg src=\"https://github.com/Bikossor/Rudus/actions/workflows/node.js.yml/badge.svg\"/\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\u0026nbsp;\u003c/p\u003e\n\n## API\n\n### Parsers\n\n- `number`\n  - Tries to match a given number\n- `string`\n  - Tries to match a given string\n- `regex`\n  - Tries to match a given regex\n- `whitespace`\n  - Tries to match one or more whitespaces (regex: `/[\\r\\n\\t\\f\\v ]+/`)\n- `word`\n  - Tries to match one or more words (regex: `/[a-zA-Z0-9_]+/`)\n- `endOfInput`\n  - Checks if there is nothing left to parse otherwise it fails\n- `endOfLine`\n  - Tries to match an end of line (either `\\r\\n`, `\\r` or `\\n`)\n- `lazy`\n  - Takes a function that just returns a parser _(a thunk)_. This defers the evaluation of the given parser. Useful for writing recursive parsers.\n- `failure`\n  - Always returns a failing parser with the given `errorMessage`. Typically used inside a contextual parser.\n\n### Combinators\n\n- `sequenceOf`\n  - Accepts multiple parsers, which must all match successfully in the given order otherwise it fails.\n- `many`\n  - Accepts a single parser, which may match zero or infinite times.\n- `many1`\n  - Accepts a single parser, which must match at least once or infinite times otherwise it fails.\n- `separatedBy`\n  - Tries to match a given `value` separated by a given `separator`\n  - Only captures the `value`\n- `anyOf`\n  - Tries to match all `parsers` and returns the first successful one.\n- `optional`\n  - The given `parser` may or may not match. This combinator can not fail.\n- `between`\n  - Tries to match a given `inner` surrounded by a given `outerLeft` and `outerRight`. The `outerRight` parser is optional and defaults to `outerLeft`.\n- `everythingUntil`\n  - Tries to match everything until (`value`) the separator.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbikossor%2Frudus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbikossor%2Frudus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbikossor%2Frudus/lists"}