Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Where is the FDB installer for version 7 ? #142

Open
joer33304 opened this issue Dec 14, 2024 · 3 comments
Open

Where is the FDB installer for version 7 ? #142

joer33304 opened this issue Dec 14, 2024 · 3 comments

Comments

@joer33304
Copy link

Hi,

I compiled the solution but when running the console app I get:
System.ArgumentException: 'The maximum API version supported by the native fdb client is 630, which is lower than version 730 required by the application. You must upgrade the native fdb client to a higher version!'

I assume this is the fdb_c.dll version ? My installed FDB server is indeed 6.3.12. Where can I find a windows install for 7.3 ?

@KrzysFR
Copy link
Member

KrzysFR commented Dec 14, 2024

I'm currently working on creating a new NuGet package to automatically redistribute the correct version of the client library that will match the platform where you are running, including windows/linux/macos.

If you are looking for the latest fdb_c.dll for win-x64, you can find version 7.3.52 here: https://github.com/Doxense/foundationdb-windows-build/releases/tag/7.3.52

At the moment, you can recreate what the NuGet package does, by running the DownloadBinaries.ps1 script in the FoundationDB.Client.Native folder. It will download all binaries for each platforms. It uses the manifest.json file in the same folder for the source uri and checksum of the binaries for each platform. See https://github.com/Doxense/foundationdb-dotnet-client/tree/master/FoundationDB.Client.Native for more details. If you don't want to include the project directly in your repo, you can at least copy the runtimes folder to the output of your build (for portable build).

As for the server itself, the easiest solution is to use .NET Aspire, and use the FoundationDB Aspire integration that will automatically start a local docker container with the matching fdbserver version. You can refer to the "Using Aspire" section in the main readme.md in this repository (https://github.com/Doxense/foundationdb-dotnet-client#using-aspire) for how to set this up.

You can also achieve the same result with TestContainers (that is already used to run the unit tests for the .NET binding), or of course by manually hosting fdb yourself in docker. The Aspire integration creates a local cluster that listens on port 4550 and uses docker:[email protected]:4550 connection string.

With both of these things combined, you can now easily write a .NET application that can be built on a Linux, macOs, or Windows development machine with always the correct version of both client and server that match the version/branch of the app (maybe not an issue at first, but was a huge issue once you had to support older versions).

@KrzysFR
Copy link
Member

KrzysFR commented Dec 14, 2024

Oh, and of course, you can still use the 6.3 version installed on you machine, by simply selecting API level 630 instead of 730 when calling AddFoundationDB(...). This value is what dictates the minimum version of the native client library that must be present. You will not be able to use newer APIs but depending on what you are doing, this may not be an issue.

@joer33304
Copy link
Author

Fantastic, thanks for all the help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants