This package provides a layer for using FoundationDB as a data store for a Swift application.
Before you can build this library, you must install the FoundationDB client libraries and the FoundationDB server from our website.
You will also need to set up a local cluster. There should be an fdbserver process that was started automatically when you installed the server. If it's not running, you can run:
fdbserver -p auto:4689 -d /usr/local/foundationdb/data/4689 -L /usr/local/foundationdb/logs &
Once it's running, you will need to configure the initial database:
fdbcli --exec "configure new single ssd"
fdbcli --exec status
This currently builds with Swift 4.0.
To build on the Mac, you must manually install the pkg-config
file in /usr/local/lib/pkgconfig/CFoundationDB.pc
.
Then you can run swift build
to build the library, and swift test
to run the
test suite.
You can generate an Xcode project for this package by running
swift package generate-xcodeproj
from the
command-line. You should then be able to build the library and run the test
suite in Xcode.
This repository provides a docker image for building the library in Linux. You can build and run the tests by running:
docker run --rm -v $PWD:/var/code/fdb-swift fdb-swift-build
You can build that Dockerfile by running:
docker build -t fdb-swift-build Resources/docker
When switching from building for Mac and building for Linux or vice-versa, run
swift build --clean
.
This package must be kept synchronized with new versions of FoundationDB. To update the version for this package:
-
Check out the master branch of the C Wrapper project, and update the versions in the following files:
- CFoundationDB.h
- CFoundationDB_linux.pc
- CFoundationDB_mac.pc
-
Commit those changes and push them to the remote repo
-
Tag the master branch with the new version (e.g.
5.0.5
) and push that tag to the remote repo. -
Update the
resources/docker/Dockerfile
file with the new FDB version -
Build the new docker image:
docker build resources/docker -t fdb-swift-build
-
Update the dependency on fdbc-swift in
Package.swift
in this repo to specify the new version. -
Commit those change and push them to the remote repo
-
Tag the master branch with the new version (e.g.
5.0.5
) and push that tag to the remote repo.