{"id":16763990,"url":"https://github.com/vitalics/rslike","last_synced_at":"2025-07-17T03:09:10.393Z","repository":{"id":186793046,"uuid":"674563681","full_name":"vitalics/rslike","owner":"vitalics","description":"Rust-like but for TypeScript/JavaScript ","archived":false,"fork":false,"pushed_at":"2025-03-10T12:21:12.000Z","size":335,"stargazers_count":20,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-15T15:26:23.704Z","etag":null,"topics":["javascript","option","result","try-catch","typescript","undefined","undefined-behavior"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/search?q=%40rslike","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vitalics.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":"2023-08-04T08:46:37.000Z","updated_at":"2025-06-12T13:41:26.000Z","dependencies_parsed_at":"2023-12-15T03:39:12.694Z","dependency_job_id":"180300ed-8bc2-48cd-81b9-d58c8fccdf24","html_url":"https://github.com/vitalics/rslike","commit_stats":null,"previous_names":["vitalics/rslike"],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/vitalics/rslike","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitalics%2Frslike","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitalics%2Frslike/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitalics%2Frslike/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitalics%2Frslike/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vitalics","download_url":"https://codeload.github.com/vitalics/rslike/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitalics%2Frslike/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265562363,"owners_count":23788513,"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":["javascript","option","result","try-catch","typescript","undefined","undefined-behavior"],"created_at":"2024-10-13T05:24:09.708Z","updated_at":"2025-07-17T03:09:10.373Z","avatar_url":"https://github.com/vitalics.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![image](https://github.com/vitalics/rslike/assets/8816260/170f3954-b2a1-4df7-a639-455c3be1ebb8)\n\n![status](https://github.com/vitalics/rslike/actions/workflows/publish.yaml/badge.svg)\n\n# Rust Like\n\nMake Javascript without undefined behavior. Forget about `try/catch/finally`\n\n## Reason to use rslike\n\n1. Less undefined behavior, when using `Option` and `Result`.\n2. Well tested. `100% test coverage`\n3. JSDoc with examples.\n4. Typescript ready - d.ts types are generated with tsc.\n5. first-class `CJS` and `ESM` support.\n6. Zero dependencies.\n7. `2kB` for min+gzip and `7.6kB` for minified. See in [bundlefobia](https://bundlephobia.com/package/@rslike/std@1.4.2).\n8. Deno?\n\n## Wanna be contributor?\n\nSee [contribute guide](./CONTRIBUTING.md)\n\n## Wiki\n\nAvailable by link: https://github.com/vitalics/rslike/wiki\n\n## Packages\n\n- [std](./packages/std/README.md). Standard library. Includes `Result`, `Option`, `match`, `Bind`, `Async`.\n- [cmp](./packages/cmp/README.md). Comparison package. Exporting `Ordering` class and `Eq`, `PartialEq`, `Ord`, `PartialOrd` types.\n- [dbg](./packages/dbg/README.md). Prints debug information about given variable.\n\n## Tech Stack\n\n- [pnpm](https://pnpm.io)\n- [tsup](https://tsup.egoist.dev/)\n- [typescript](https://www.typescriptlang.org/)\n- [changeset](https://github.com/changesets/changesets)\n- [husky](https://www.npmjs.com/package/husky)\n- [github actions](https://github.com/features/actions)\n- [jest](https://jestjs.io/)\n- [eslint](https://eslint.org/)\n\n## Plans\n\n- [] Primitives\n- [] extendign built-ins collections\n- [] Extend Collections (Hashset, Hashmap, MapReduce)\n- [] make `match` tc39 proposal compatable.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvitalics%2Frslike","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvitalics%2Frslike","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvitalics%2Frslike/lists"}