{"id":13409054,"url":"https://github.com/crclark/foundationdb-haskell","last_synced_at":"2025-10-07T04:40:34.067Z","repository":{"id":31946503,"uuid":"130640225","full_name":"crclark/foundationdb-haskell","owner":"crclark","description":"Haskell FFI bindings to the FoundationDB C API","archived":false,"fork":false,"pushed_at":"2023-11-12T18:34:16.000Z","size":1222,"stargazers_count":35,"open_issues_count":5,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-08T20:41:31.224Z","etag":null,"topics":["database","ffi-bindings","foundationdb"],"latest_commit_sha":null,"homepage":"https://crclark.github.io/foundationdb-haskell/","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crclark.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","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}},"created_at":"2018-04-23T04:31:16.000Z","updated_at":"2025-05-04T19:00:39.000Z","dependencies_parsed_at":"2023-11-12T19:39:15.185Z","dependency_job_id":null,"html_url":"https://github.com/crclark/foundationdb-haskell","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/crclark/foundationdb-haskell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crclark%2Ffoundationdb-haskell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crclark%2Ffoundationdb-haskell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crclark%2Ffoundationdb-haskell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crclark%2Ffoundationdb-haskell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crclark","download_url":"https://codeload.github.com/crclark/foundationdb-haskell/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crclark%2Ffoundationdb-haskell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278722728,"owners_count":26034461,"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","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"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":["database","ffi-bindings","foundationdb"],"created_at":"2024-07-30T20:00:57.638Z","updated_at":"2025-10-07T04:40:34.034Z","avatar_url":"https://github.com/crclark.png","language":"Haskell","funding_links":[],"categories":["Bindings"],"sub_categories":[],"readme":"[![GitHub CI](https://github.com/crclark/foundationdb-haskell/workflows/CI/badge.svg)](https://github.com/crclark/foundationdb-haskell/actions)\n\n[API Docs](https://crclark.github.io/foundationdb-haskell/)\n\nHaskell bindings for the FoundationDB C client. Currently contains FFI bindings to all of the C API, a `Transaction` monad for defining transactions ([example](https://github.com/crclark/foundationdb-haskell/blob/1f8d0ba2c4985d2fe3d8e6fcbc852c01050af9bb/tests/Properties.hs#L48)), and implementations of the standard tuple, subspace and directory layers.\n\nI am not using this in a production-like context, but I have exercised the code rather heavily (heavy transaction rates for days at a time) in both local and cloud environments. The major missing component is directory partitions, but I haven't needed them yet. Generally speaking, the directory layer is the least exercised part of the library.\n\n### Supported FoundationDB versions\n\nCurrently supports 5.2.x through 7.1.x. By default, this package builds assuming that you have installed the latest supported version of FoundationDB. If not, you need to set the appropriate flag when building the library. For example, if you installed FoundationDB 6.0.x, you need to build with\n\n`stack build --flag foundationdb-haskell:fdb-version-600`\n\nor\n\n`cabal configure -f fdb-version-600 \u0026\u0026 cabal build`\n\n### Development\n\n#### Generating options from `fdb.options`\n\nFoundationDB provides [a specification](https://github.com/apple/foundationdb/blob/master/fdbclient/vexillographer/fdb.options) of available client options. We generate the `FoundationDB.Options` module from this file with the `generate-options` executable in this project.\n\nTo build the `generate-options` executable, pass the `with-generate-options` flag\nwhen building. For example, when building with `stack`, the command is\n\n```\nstack build --flag foundationdb-haskell:with-generate-options\n```\n\nYou can then invoke it on `fdb.options`.\n\n```\nstack exec generate-options -- --file /usr/include/foundationdb/fdb.options\n```\n\nthis will create a number of files in the current directory, which should be\nmoved to `src/FoundationDB/Options/`. A few of the generated files are\nredundant with what's already generated by c2hs from the header file, and\nshould be omitted.\n\n#### Generating docs/\n\n`stack hoogle --keep-going`\n\ncopy result to `docs/`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrclark%2Ffoundationdb-haskell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrclark%2Ffoundationdb-haskell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrclark%2Ffoundationdb-haskell/lists"}