🃏
deckr
Deckr provides a REST/gRPC API to simulate a deck of cards.
Contents
Requirements
-
Mage - replacement for Makefile in Go.
$ go install github.com/magefile/[email protected]
-
Golangci-lint - Fast Go linters runner.
$ go install github.com/golangci/golangci-lint/cmd/[email protected]
-
Ginkgo - Expressive testing framework.
$ go install github.com/onsi/ginkgo/v2/[email protected]
-
Swag - Generate REST/gRPC API documentation.
$ go install github.com/swaggo/swag/cmd/[email protected]
-
Buf - A new way of working with Protocol Buffers.
$ go install github.com/bufbuild/buf/cmd/[email protected]
-
Protoc - Protocol Buffers compiler.
For installation instructions, see Protocol Buffer Compiler Installation.
-
Protoc-gen-go - Go code generator for Protocol Buffers.
$ go install github.com/golang/protobuf/[email protected]
-
Protoc-gen-go-grpc - Go code generator for gRPC.
$ go install google.golang.org/grpc/cmd/[email protected]
-
Docker - Containerization.
Mage Targets
$ mage -l
Targets:
build:all Builds for all supported popular OS/Arch
build:linuxAmd64 Builds for Linux 64bit
build:linuxArm64 Builds for Linux ARM 64bit
build:macOSAmd64 Builds for MacOS 64bit
build:macOSArm64 Builds for MacOS M1
build:winAmd64 Builds for Windows 64bit
docs Generates docs
lint Run golangci linters
proto Generate stubs from proto files
test Run tests
testRace Run tests with race detector
tidy Run go mod tidy
Example
Generate docs
$ mage -v docs
Generate stubs from proto files
$ mage -v proto
Run tests with race detector
$ mage -v testRace
Build deckr for MacOS M1
$ mage -v build:macOSArm64
Install
-
You can install using the latest released binary.
-
OR using Go:
$ go install github.com/mgjules/[email protected]
-
OR bulding from source:
Example (MacOS M1):
$ mage -v build:macOSArm64
Usage
$ deckr --help
NAME:
deckr - A REST/gRPC API for playing with a deck of cards
USAGE:
deckr [global options] command [command options] [arguments...]
DESCRIPTION:
Deckr exposes a REST/gRPC API for playing with a deck of cards of your choice.
AUTHOR:
Michaël Giovanni Jules <[email protected]>
COMMANDS:
serve Starts the REST/gRPC API server.
version, v Shows the version
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help (default: false)
COPYRIGHT:
(c) 2022 Michaël Giovanni Jules
REST/gRPC API server
$ deckr serve --help
NAME:
deckr serve - Starts the REST/gRPC API server.
USAGE:
deckr serve [command options] [arguments...]
OPTIONS:
--debug whether running in PROD or DEBUG mode (default: false) [$DECKR_DEBUG]
--server-uri value URI of server (default: "http://localhost:9000") [$DECKR_SERVER_URI]
--storage-uri value URI of storage (default: "inmemory://") [$DECKR_STORAGE_URI]
--help, -h show help (default: false)
REST/gRPC API documentation
The REST/gRPC API documentation is generated using Swag and is available at /swagger/index.html
.
License
Deckr is Apache 2.0 licensed.
chore(deps): bump go.uber.org/zap from 1.21.0 to 1.23.0
Bumps go.uber.org/zap from 1.21.0 to 1.23.0.
Release notes
Sourced from go.uber.org/zap's releases.
Changelog
Sourced from go.uber.org/zap's changelog.
Commits
1ae5819
Release v1.23.0 (#1157)23d6cc7
Add Stringers field constructor for slices of Stringer-compatible objects (#1...1e46f5e
Issue Templates: Show a "Discussions" link for questions (#1152)92dded6
Add issue template for questions (#1151)4a895a2
zapcore: Add LevelOf(LevelEnabler), UnknownLevel (#1147)19a5d8a
Open: expose error cause, test for fs.ErrNotExist (#1149)bdd673d
Replace os.TempDir usage with t.TempDir (#1146)4b03bc5
Prepare release v1.22.0 (#1145)ee349f9
CI: Lint against 1.19 (#1141)7ee98d2
ci: add go1.19 (#1140)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)chore(deps): bump go.uber.org/zap from 1.21.0 to 1.24.0
Bumps go.uber.org/zap from 1.21.0 to 1.24.0.
Release notes
Sourced from go.uber.org/zap's releases.
... (truncated)
Changelog
Sourced from go.uber.org/zap's changelog.
... (truncated)
Commits
a55bdc3
Release v1.24.0 (#1208)ed5598a
Use ReplaceAll instead of Replace with -1 pos arg (#1195)da406e3
Chore: Fix deprecation docs and links (#1193)9b86a50
SugaredLogger: Turn error into zap.Error (#1185)9137e0e
go.mod: Bump go directive to 1.19 (#1181)7cabba7
Open absolute paths as files, limited Windows support (#1159)7681a0a
Export objectMarshalerPtr (#1171)9abd14b
chore: remove duplicate word in comments (#1169)eae3743
Logger, SugaredLogger: Add Level method (#1148)0d6a75b
tests: assert.Error/Contains => assert.ErrorContains (#1158)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)chore(deps): bump github.com/imdario/mergo from 0.3.12 to 0.3.13
Bumps github.com/imdario/mergo from 0.3.12 to 0.3.13.
Release notes
Sourced from github.com/imdario/mergo's releases.
Commits
1949787
Update README.md80c13e1
Merge pull request #212 from imdario/dcc/issue-206f86e6f6
Upgrade yaml to v339ebbbb
Merge pull request #210 from heaths/issue209fd7d2bc
Merge pull request #211 from zaquestion/transformer_valid_destination8109749
add test for deepMerge panic4bed36e
add test for keeping zero values with transformerab6b270
fix: gate transformers on valid non-nil destinations200f90d
Support slices of same typefd3dfc9
Merge pull request #191 from marcauberer/masterDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)chore(deps): bump google.golang.org/grpc from 1.46.2 to 1.51.0
Bumps google.golang.org/grpc from 1.46.2 to 1.51.0.
Release notes
Sourced from google.golang.org/grpc's releases.
... (truncated)
Commits
eeb9afa
Change version to 1.51.0 (#5782)72812fe
gcp/observability: filter logging from cloud ops endpoints calls (#5765)0ae33e6
xdsclient: remove unused test code (#5772)824f449
go.mod: upgrade x/text to v0.4 to address CVE (#5769)7f23df0
xdsclient: switch xdsclient watch deadlock test to e2e style (#5697)32f969e
o11y: Added started rpc metric in o11y plugin (#5768)b597a8e
xdsclient: improve authority watchers test (#5700)e41e894
orca: create ORCA producer for LB policies to use to receive OOB load reports...36d14db
Fix binary logging bug which logs a server header on a trailers only response...fcb8bdf
xds/google-c2p: validate url for no authorities (#5756)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)chore(deps): bump github.com/jackc/pgx/v4 from 4.16.1 to 4.17.2
Bumps github.com/jackc/pgx/v4 from 4.16.1 to 4.17.2.
Changelog
Sourced from github.com/jackc/pgx/v4's changelog.
Commits
d42b399
Update changelogdfce986
Fix panic when logging batch errorf5cdf0d
Update changelog72fe594
Upgrade to puddle v1.3.0bce26b8
Fix atomic alignment on 32-bit platforms1d748d9
Failsafe timeout for background pool connections6871a0c
Add v5 testing note to readme5768a0c
Update changelog7ce634d
Ensure there is a timeout for background pool connectionsf3e04b2
Go 1.19 go fmtDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)chore(deps): bump google.golang.org/protobuf from 1.28.0 to 1.28.1
Bumps google.golang.org/protobuf from 1.28.0 to 1.28.1.
Release notes
Sourced from google.golang.org/protobuf's releases.
Commits
6875c3d
all: release v1.28.1881da6e
all: Add prebuild binaries for arm642a74a0e
A+C: delete AUTHORS and CONTRIBUTORSde9682a
internal/impl: improve MessageInfo.New performanceb0a9446
all: reformat with go1.19 gofmtc1bbc5d
all: make integration test work on darwin/arm645f429f7
proto: fix compilation failure in testsfc44d00
proto: use reflect.Ptr for backward compatibility380c339
proto: short-circuit Equal when inputs are identical784c482
all: remove shorthand import aliasesDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)