{"id":26198551,"url":"https://github.com/phisgr/rektdeal","last_synced_at":"2026-04-19T16:02:11.989Z","repository":{"id":217455043,"uuid":"739938518","full_name":"phiSgr/rektdeal","owner":"phiSgr","description":"A reimplementation of Antony Lee's Redeal in Kotlin. ","archived":false,"fork":false,"pushed_at":"2025-08-06T06:26:19.000Z","size":351,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-27T01:58:57.381Z","etag":null,"topics":["bridge-game"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phiSgr.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-07T02:08:21.000Z","updated_at":"2025-12-21T09:09:15.000Z","dependencies_parsed_at":"2024-01-16T15:48:16.112Z","dependency_job_id":"1aaa1e43-5bbf-4f5b-9e63-f32cdbac0b40","html_url":"https://github.com/phiSgr/rektdeal","commit_stats":null,"previous_names":["phisgr/rektdeal"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/phiSgr/rektdeal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phiSgr%2Frektdeal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phiSgr%2Frektdeal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phiSgr%2Frektdeal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phiSgr%2Frektdeal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phiSgr","download_url":"https://codeload.github.com/phiSgr/rektdeal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phiSgr%2Frektdeal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32012787,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bridge-game"],"created_at":"2025-03-12T02:53:23.792Z","updated_at":"2026-04-19T16:02:11.971Z","avatar_url":"https://github.com/phiSgr.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ReKtDeal\n\n## A Kotlin reimplementation of Antony Lee's Redeal,\n\n### which is a reimplementation of Thomas Andrews' Deal in Python.\n\n[Redeal](https://github.com/anntzer/redeal) is a deal generator:\nit outputs deals satisfying whatever conditions you specify -\ndeals with a double void, deals with a strong 2♣️ opener opposite a yarborough, etc.\nUsing Bo Haglund's double dummy solver,\nit can even solve the hands it has generated for you.\nUnfortunately, the language of Redeal - Python - is slow.\nReKtDeal is thus my rewrite of Redeal using another language: Kotlin.[^1]\n\nThe deal generation in ReKtDeal is often 100x faster than Redeal,\nand that's before multi-threading.\n\n## DDS4J: Double Dummy Solver\n\nUnder the hood, ReKtDeal uses [DDS4J](./dds4j) -\nJava binding for Bo Haglund’s double dummy solver\n(JVM 22+ required).\nThe binary is bundled for\nWindows/Linux x86_64, macOS x86_64/Apple Silicon.\nI believe this covers most users.\nSee the [instructions](./dds4j#custom-binary) if your system is not included.\n\n## Setup\n\nFundamentally, ReKtDeal is just a Kotlin library.\nUsing it is no different from any other library from Maven.\n\n\u003cdetails\u003e\n  \u003csummary\u003eE.g. Gradle (Kotlin DSL)\u003c/summary\u003e\n\n```kotlin\ndependencies {\n    implementation(\"com.github.phisgr:rektdeal:0.3.0\")\n}\n\n// Set the JVM args\napplication {\n    applicationDefaultJvmArgs = listOf(\"--enable-native-access=ALL-UNNAMED\")\n}\n```\n\n\u003c/details\u003e\n\nBut I imagine most uses are going to be interactive.\nFor that [Kotlin Jupyter](https://github.com/Kotlin/kotlin-jupyter) can be used.\n\n```kotlin\n@file:DependsOn(\"com.github.phisgr:rektdeal:0.3.0\")\n```\n\n## About\n\nThe name is pronounced \"wrecked deal\" - a play on \"Redeal\" and \"kt\".\n\nWhile ReKtDeal largely mirrors the API of Redeal, it departs in philosophy.\nRedeal, following Deal, is primarily a command-line program that accepts scripts -\nuser logic is passed into a main program.\nFor instance, you can construct an `OpeningLeadSim` in your code,\nbut to run it you have to invoke `python -mredeal`.\n\nReKtDeal, on the other hand, is a library.\nIn your own program or in the REPL,\nyou call `openingLead` like any other function.\n\nSee [this blogpost](https://medium.com/p/957839cac3d4) for how and why it was built.\n\n# Talk is cheap. Show me the code.\n\nSee a full introduction demo [here](examples/introduction.ipynb).\n\n[^1]: The opening paragraph was adapted from the [README of Redeal](\nhttps://github.com/anntzer/redeal/blob/main/README.rst).\nThe almost identical wording was inspired by some then-recent news.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphisgr%2Frektdeal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphisgr%2Frektdeal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphisgr%2Frektdeal/lists"}