{"id":15978161,"url":"https://github.com/wandererxii/shogiops","last_synced_at":"2026-03-06T18:03:31.285Z","repository":{"id":41374448,"uuid":"330452896","full_name":"WandererXII/shogiops","owner":"WandererXII","description":"Shogi rules and operations in TypeScript","archived":false,"fork":false,"pushed_at":"2024-12-25T15:14:36.000Z","size":1515,"stargazers_count":8,"open_issues_count":0,"forks_count":3,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-16T00:35:04.778Z","etag":null,"topics":["chushogi","csa","kif","minishogi","sfen","shogi","shogi-game","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"niklasf/chessops","license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WandererXII.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","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":"2021-01-17T17:57:41.000Z","updated_at":"2024-12-25T15:14:39.000Z","dependencies_parsed_at":"2024-05-28T18:57:20.736Z","dependency_job_id":"0f25de64-893a-4acb-8c36-711750d407cc","html_url":"https://github.com/WandererXII/shogiops","commit_stats":{"total_commits":917,"total_committers":6,"mean_commits":"152.83333333333334","dds":"0.40567066521264994","last_synced_commit":"793debc8c5d66885e5755acd008d30ace9c3ec69"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WandererXII%2Fshogiops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WandererXII%2Fshogiops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WandererXII%2Fshogiops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WandererXII%2Fshogiops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WandererXII","download_url":"https://codeload.github.com/WandererXII/shogiops/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244058317,"owners_count":20391078,"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":["chushogi","csa","kif","minishogi","sfen","shogi","shogi-game","typescript"],"created_at":"2024-10-07T23:06:22.778Z","updated_at":"2026-03-06T18:03:31.277Z","avatar_url":"https://github.com/WandererXII.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# shogiops\n\n[![lishogi.org](https://img.shields.io/badge/☗_lishogi.org-Play_shogi-black)](https://lishogi.org)\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/WandererXII/shogiops/ci.yml?label=CI)\n[![npm](https://img.shields.io/npm/v/shogiops?logo=npm)](https://www.npmjs.com/package/shogiops)\n\nShogi and operations in TypeScript forked from [chessops](https://github.com/niklasf/chessops), rewritten for shogi.\n\n## Features\n\n- Read and write SFEN\n- Vocabulary (Square, SquareSet, Color, Role, Piece, Board, Position)\n- Shogi\n  - Move/drop making\n  - Legal move and drop move generation\n  - Game end and outcome\n  - Setup validation\n- Attacks and rays using hyperbola quintessence\n- Read and write USI, Japanese, Western and Kitao-Kawasaki notation\n- Read and write KIF and CSA notation\n- Currently supported variants - shogi, minishogi, chushogi, annan shogi and kyoto shogi.\n- [Compatibility with shogiground](https://github.com/WandererXII/shogiground)\n- [Compatibility with lishogi](https://lishogi.org)\n\n[File an issue](https://github.com/WandererXII/shogiops/issues/new) to request more or report a bug.\n\n## Example\n\nTest directory has a lot of examples and use-cases.\n\n```typescript\nimport { initialSfen, parseSfen } from 'shogiops/sfen';\nimport type { Rules } from 'shogiops/types';\nimport { parseUsi } from 'shogiops/util';\n\nconst rules: Rules = 'standard';\nconst sfen = initialSfen(rules);\nconst pos = parseSfen(rules, sfen).unwrap(); // or handle errors\nconst usi = parseUsi('7g7f')!;\npos.play(usi);\n```\n\n## License\n\nshogiops is licensed under the GNU General Public License 3 or any later\nversion at your choice. See LICENSE.txt for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwandererxii%2Fshogiops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwandererxii%2Fshogiops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwandererxii%2Fshogiops/lists"}