Jiffy Dependencies

What does Jiffy need to run?

Wherever possible and reasonable, Jiffy relies on packages found in the Go standard library. As of this writing, Go version 1.14.3 is recommended in order to build the Jiffy binary. Jiffy requires a running database from the following list of supported databases:

Supported Databases

Database Drivers

The following Go database drivers are required, even if you are only planning to make use of one of the DBMS’s in the supported list. This is due to the fact that Jiffy attempts to connect to your test database during the code generation process and there is no guarantee what that database may be. It is possible that a developer tests with SQLite locally when generating the code and performing initial tests, but intends to ultimately connect to Postgres.

Driver Name Driver Location
SAP Hana Database Driver github.com/SAP/go-hdb/driver
MSSQL Database Driver github.com/denisenkom/go-mssqldb
MySQL Database Driver github.com/go-sql-driver/mysql
PostgreSQL Database Driver github.com/lib/pq
SQLite3 Database Driver github.com/mattn/go-sqlite3

The database drivers can be pulled down from their respective repositories via the go get -u command. However, correct versions of the database drivers will be pulled from their respective repositories based on the go.mod file in the project codebase during the build process.

  go get -u github.com/lib/pq



Other Dependencies

Library Name Library Location
sqac ORM github.com/1414C/sqac
sluggo Key-Value-Store github.com/1414C/sluggo
golang-jwt package "github.com/golang-jwt
gorilla mux package github.com/gorilla/mux
web-sockets package golang.org/x/net/websocket
log-writer package github.com/1414C/lw
redis client github.com/garyburd/redigo/redis
memcached client github.com/bradfitz/gomemcache/memcache

If you wish to be certain that you have everything, copy and execute the following script in your development and build environments. go get should pull the libraries based on the content of jiffy’s go.mod file.

#!/usr/bin/bash

go get -u github.com/1414C/sqac
go get -u github.com/1414C/sluggo/wscl
go get -u github.com/golang-jwt/jwt
go get -u github.com/golang-jwt/jwt/request
go get -u github.com/gorilla/mux
go get -u golang.org/x/net/websocket
go get -u github.com/SAP/go-hdb/driver
go get -u github.com/denisenkom/go-mssqldb
go get -u github.com/go-sql-driver/mysql
go get -u github.com/lib/pq
go get -u github.com/mattn/go-sqlite3
go get -u github.com/garyburd/redigo/redis
go get -u github.com/bradfitz/gomemcache/memcache