go

module
v1.1.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 6, 2024 License: Apache-2.0

README

Common Library for Go

Installation

go get -u github.com/common-library/go

Features

  • ai
    • gemini
  • archive
    • gzip
    • tar
    • zip
  • aws
    • Amazon DynamoDB
    • Amazon S3
  • command line
    • arguments
    • flag
  • data structure
    • Deque
    • Queue
  • database
    • Elasticsearch v7/v8
    • MongoDB
    • Prometheus
    • Redis
    • SQL
      • DynamoDB
      • Microsoft SQL Server
      • MySQL
      • Oracle
      • Postgres
      • SQLite
  • event
    • cloudevents
  • file
  • grpc
  • http
  • json
  • kubernetes
    • resource
      • client
      • custom resource
      • custom resource definition
  • lock
  • log
  • long polling
  • security
    • crypto
      • dsa
      • ecdsa
      • ed25519
      • rsa
  • socket
  • storage
    • MinIO
  • utility

Test and Coverage

  • prepare
    • Amazon
      • DynamoDB
        • docker run --name dynamodb --detach --publish 8000:8000 --env "-jar DynamoDBLocal.jar -sharedDb -inMemory" amazon/dynamodb-local:2.4.0
      • S3
        • docker run --name s3mock --detach --publish 9090:9090 -p 9191:9191 adobe/s3mock:3.7.3
    • Elasticsearch v7
      • docker run --name elasticsearch-v7 --detach --publish 19200:9200 -p 19300:9300 --env discovery.type=single-node --env ES_JAVA_OPTS="-Xms500m -Xmx500m" elasticsearch:7.17.21
    • Elasticsearch v8
      • docker network create elastic
      • docker run --name elasticsearch-v8 --net elastic --detach --publish 29200:9200 -p 29300:9300 --env discovery.type=single-node --env ES_JAVA_OPTS="-Xms500m -Xmx500m" --env xpack.security.enabled=false elasticsearch:8.13.0
    • MongoDB
      • docker run --name mongodb --detach --publish 27017:27017 mongo:7.0.9
    • Redis
      • docker run --name redis --detach --publish 6379:6379 redis:7.2.4
    • SQL
      • Amazon DynamoDB
        • docker run --name dynamodb --detach --publish 8000:8000 --env "-jar DynamoDBLocal.jar -sharedDb -inMemory" amazon/dynamodb-local:2.4.0
      • MySQL
        • docker run --name mysql --detach --publish 3306:3306 --env MYSQL_ROOT_PASSWORD=root mysql:8.4.0
      • Postgres
        • 'docker run --name postgres --detach --publish 5432:5432 --env POSTGRES_PASSWORD=postgres postgres:16.2-alpine'
  • Test
    • go clean -testcache && go test -cover ./...
  • Coverage
    • make coverage file
      • go clean -testcache && go test -coverprofile=coverage.out -cover ./...
    • convert coverage file to html file
      • go tool cover -html=./coverage.out -o ./coverage.html

How to add grpc

  • create protobuf IDL(Interface Definition Language) file
  • convert IDL file to code
    • go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.31.0
    • go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0
    • wget https://github.com/protocolbuffers/protobuf/releases/download/v3.20.3/protoc-3.20.3-linux-x86_64.zip
    • unzip protoc-3.20.3-linux-x86_64.zip -d protoc/
    • protoc/bin/protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative grpc/sample/sample.proto
  • implement functions defined in IDL file

Directories

Path Synopsis
ai
gemini
Package gemini provides communication with Gemini.
Package gemini provides communication with Gemini.
archive
gzip
Package gzip provides gzip implementations.
Package gzip provides gzip implementations.
tar
Package tar provides tar implementations.
Package tar provides tar implementations.
zip
Package zip provides zip implementations.
Package zip provides zip implementations.
aws
dynamodb
Package dynamodb provides DynamoDB client implementations.
Package dynamodb provides DynamoDB client implementations.
s3
Package s3 provides Amazon S3 client implementations.
Package s3 provides Amazon S3 client implementations.
Package collection provides data structure related implementations.
Package collection provides data structure related implementations.
command-line
arguments
Package arguments provides command line arguments
Package arguments provides command line arguments
flags
Package flag provides command line flag
Package flag provides command line flag
database
elasticsearch/v7
Package v7 provides Elasticsearch version 7 client implementations.
Package v7 provides Elasticsearch version 7 client implementations.
elasticsearch/v8
Package v8 provides Elasticsearch version 8 client implementations.
Package v8 provides Elasticsearch version 8 client implementations.
mongodb
Package mongodb provides MongoDB client implementations.
Package mongodb provides MongoDB client implementations.
prometheus/client
Package client provides prometheus client implementations.
Package client provides prometheus client implementations.
prometheus/exporter
Package exporter provides prometheus exporter implementations.
Package exporter provides prometheus exporter implementations.
redis
Package redis provides Redis client implementations.
Package redis provides Redis client implementations.
sql
Package sql provides a database client implementation that uses SQL.
Package sql provides a database client implementation that uses SQL.
event
cloudevents
Package cloudevents provides cloudevents client and server implementations.
Package cloudevents provides cloudevents client and server implementations.
Package file provides file related implementations.
Package file provides file related implementations.
Package grpc provides grpc client and server implementations.
Package grpc provides grpc client and server implementations.
sample
Package sample provides sample grpc interface.
Package sample provides sample grpc interface.
Package http provides http client and server implementations.
Package http provides http client and server implementations.
Package json provides a conversion between json and struct.
Package json provides a conversion between json and struct.
kubernetes
resource/client
Package client provides kubernetes client implementations.
Package client provides kubernetes client implementations.
Package lock provides lock implementations.
Package lock provides lock implementations.
log
klog
Package klog provides klog logging.
Package klog provides klog logging.
slog
Package slog provides slog logging.
Package slog provides slog logging.
Package long_polling provides long polling client and server implementations.
Package long_polling provides long polling client and server implementations.
security
crypto/dsa
Package dsa provides dsa crypto related implementations.
Package dsa provides dsa crypto related implementations.
crypto/ecdsa
Package ecdsa provides ecdsa crypto related implementations.
Package ecdsa provides ecdsa crypto related implementations.
crypto/ed25519
Package ed25519 provides ed25519 crypto related implementations.
Package ed25519 provides ed25519 crypto related implementations.
crypto/rsa
Package rsa provides rsa crypto related implementations.
Package rsa provides rsa crypto related implementations.
Package socket provides socket client and server implementations.
Package socket provides socket client and server implementations.
storage
minio
Package minio provides MinIO client implementations.
Package minio provides MinIO client implementations.
Package utility provides utility implementations.
Package utility provides utility implementations.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL