Kotlin multiplatform bindings for mongodb driver.
Has a baseline setup for a multiplatform library supporting all kotlin server-side targets.
- JVM
- JS (NodeJs)
- LinuxX64
- MingwX64
- MacOSX64
The library tries to integrate with native libraries for each platform to the best of its ability, while also exposing
the native objects directly via source
property on Monko objects.
- JVM -> mongo-java-driver@4.3.0
- JS (NodeJs) -> node-mongodb-native@4.0.0
- LinuxX64, MingwX64, MacOSX64 -> mongo-c-driver@1.18.0
- Debian/Ubuntu:
./scripts/setupUbuntu.sh
- OSX (requires Homebrew):
./scripts/setupOSX.sh
- Windows (requires MSYS2):
./scripts/setupMingw.sh
- Start mongodb:
docker run --rm -p 27017:27017 mongo
- Alternatively you can use
docker-compose
which also gives you access tomongo-express
web interface to interact with the database directly athttp://localhost:8081
. To run it usedocker-compose up
command.
- Alternatively you can use
- Run via gradle:
./gradlew allTests
or alias./gradlew test
First you need to build builder images for each platform (only needs to be done once).
- Debian/Ubuntu:
docker build -t monko-build:ubuntu --build-arg "user=$USER" -f docker/ubuntu.dockerfile .
- OSX:
docker build -t monko-build:osx --build-arg "user=$USER" -f docker/osx.dockerfile .
Then you can run gradle commands of the project on a chosen image as:
- Debian/Ubuntu:
docker run --network host --rm -v "$PWD:/repository" monko-build:ubuntu <gradle commands>
- OSX:
docker run --network host --rm -v "$PWD:/repository" monko-build:osx <gradle commands>