Duplicate bridge double dummy APIs in Javascript
This library provides a Javascript/Typescript wrapper around the C++ double dummy solver library.
The underlying library is compiled to webassembly, and a thin API layer is added to provide a Javascript-friendly interface. The intention is for the wrapping APIs to be very thin, and as close to the C++ APIs as possible.
Install the library using npm:
npm install @bridge-dds
The basic use involes initialzing the library and invoking APIs.
The following APIs are currently supported, but ping me if you are looking for others and I can add them:
- AnalysePlayPBN
- CalcDDTablePBN
- DealerPar
- SolveBoardPBN
import DdsLoader, { Dds, DealPbn, FutureTricks, loadDds } from "bridge-dds";
const module = await loadDds();
const dds = new Dds(module);
const result = dds.SolveBoardPBN({ ... });
Because the library provides a blocking API, it will usually be desired to run the calls on a background webworker. The react example shows how the API can be invoked in the background using a webworker.
To build this module, the underlying dds library is included as a git submodule. A PR has been opened against the dds library to add a web assembly build. It has not been accepted, but this is the branch we are pulling into this repository.
Once the submodules are cloned, you can run make
to build the webassembly and javascript wrapper.