Phalanx is a cloud-native full-text search and indexing server written in Go built on top of Bluge that provides endpoints through gRPC and traditional RESTful API.

Phalanx

Phalanx is a cloud-native full-text search and indexing server written in Go built on top of Bluge that provides endpoints through gRPC and traditional RESTful API.
Phalanx implements a cluster formation by hashicorp/memberlist and managing index metadata on etcd, so it is easy to bring up a fault-tolerant cluster.
Metrics for system operation can also be output in Prometheus exposition format, so that monitoring can be done immediately using Prometheus.
Phalanx is using object storage for the storage layer, it is only responsible for the computation layer, such as indexing and retrieval processes. Therefore, scaling is easy, and you can simply add new nodes to the cluster.
Currently, it is an alpha version and only supports MinIO as the storage layer, but in the future it will support Amazon S3, Google Cloud Storage, and Azure Blob Storage.

Start Phalanx on local machine with local file system

Phalanx can be started on a local machine as if it were using local storage instead of object storage.
A configuration file is available for starting on the local machine. You can start Phalanx by using it or by specifying the contents described in it with flags in the CLI. The following command starts with a configuration file:

% phalanx --config-file=./examples/phalanx_local.yml

Start Phalanx on local machine with MinIO and etcd

To experience the features of Phalanx, let's try to start Phalanx using MinIO and etcd.
First of all, let's start MinIO and etcd that Phalanx depends on. You can start them yourself, but there is a docker-compose.yml in this repository. You can use this to easily run MinIO and etcd on Docker.

% docker-compose up

Once the container has been started, you can check the MinIO and etcd data in your browser at the following URL.

Then, let's start Phalanx. A configuration file is available for starting on the local machine with MinIO and etcd. You can start Phalanx by using it or by specifying the contents described in it with flags in the CLI. The following command starts with a configuration file:

% phalanx --config-file=./examples/phalanx.yml
% phalanx --config-file=./examples/phalanx.yml --bind-port=2001 --grpc-port=5001 --http-port=8001 --seed-addresses=0.0.0.0:2000
% phalanx --config-file=./examples/phalanx.yml --bind-port=2002 --grpc-port=5002 --http-port=8002 --seed-addresses=0.0.0.0:2000

The above command overwrites the values in the configuration file with CLI flags in order to start multiple Phalanx nodes. Above example shows each Phalanx node running on the same host, so each node must listen on different ports. This would not be necessary if each node ran on a different host.
This instructs each new node to join an existing node, each node recognizes the joining clusters when started. So you have a 3-node cluster.

Health check

Liveness check

% curl -XGET http://localhost:8000/livez | jq .
{
  "state":"alive"
}

Readiness check

% curl -XGET http://localhost:8000/readyz | jq .
{
  "state":"ready"
}

There are endpoints, but it is not yet fully implemented.

Metrics exposition

% curl -XGET http://localhost:8000/metrics
# HELP phalanx_grpc_server_handled_total Total number of RPCs completed on the server, regardless of success or failure.
# TYPE phalanx_grpc_server_handled_total counter
phalanx_grpc_server_handled_total{grpc_code="Aborted",grpc_method="AddDocuments",grpc_service="index.Index",grpc_type="unary"} 0
phalanx_grpc_server_handled_total{grpc_code="Aborted",grpc_method="Cluster",grpc_service="index.Index",grpc_type="unary"} 0
...

Cluster status

% curl -XGET http://localhost:8000/cluster | jq .
{
  "indexer_assignment": {},
  "indexes": {},
  "nodes": {
    "node-KWkaw0jJ": {
      "addr": "0.0.0.0",
      "meta": {
        "grpc_port": 5000,
        "http_port": 8000,
        "roles": [
          "indexer",
          "searcher"
        ]
      },
      "port": 2000,
      "state": "alive"
    }
  },
  "searcher_assignment": {}
}

Create index

Create index on local file system

If you have started Phalanx to use the local file system, you can use this command to create an index.

% curl -XPUT -H 'Content-type: application/json' http://localhost:8000/v1/indexes/example_en --data-binary @./examples/create_index_example_en_local.json

Create index with MinIO and etcd

If you have started Phalanx to use MinIO and etcd, use this command to create the index.

% curl -XPUT -H 'Content-type: application/json' http://localhost:8000/v1/indexes/example_en --data-binary @./examples/create_index_example_en.json

The difference between the above commands is the difference between index_uri and lock_uri in the configuration file. This parameter specifies where the index and its lock file will be created.

Delete index

% curl -XDELETE http://localhost:8000/v1/indexes/example_en

Add / Update documents

% curl -XPUT -H 'Content-type: application/x-ndjson' http://localhost:8000/v1/indexes/example_en/documents --data-binary @./examples/add_documents.ndjson

Delete documents

% curl -XDELETE -H 'Content-type: text/plain' http://localhost:8000/v1/indexes/example_en/documents --data-binary @./examples/delete_ids.txt

Search

% curl -XPOST -H 'Content-type: text/plain' http://localhost:8000/v1/indexes/example_en/_search --data-binary @./examples/search.json | jq .
{
  "documents": [
    {
      "fields": {
        "_timestamp": "2021-12-10T13:03:18Z",
        "category": "/language/rust",
        "description": "Sonic is a fast, lightweight and schema-less search backend.",
        "name": "Sonic",
        "popularity": 7895,
        "publish_date": "2019-12-10T14:13:00Z",
        "url": "https://github.com/valeriansaliou/sonic"
      },
      "id": "7",
      "score": 0.37863163826497015
    },
    {
      "fields": {
        "_timestamp": "2021-12-10T13:03:18Z",
        "category": "/language/python",
        "description": "Whoosh is a fast, pure Python search engine library.",
        "name": "Whoosh",
        "popularity": 0,
        "publish_date": "2019-10-07T20:30:26Z",
        "url": "https://bitbucket.org/mchaput/whoosh/wiki/Home"
      },
      "id": "11",
      "score": 0.3731338946601548
    },
    {
      "fields": {
        "_timestamp": "2021-12-10T13:03:18Z",
        "category": "/language/java",
        "description": "Apache Lucene is a high-performance, full-featured text search engine library written entirely in Java.",
        "name": "Lucene",
        "popularity": 3135,
        "publish_date": "2019-12-19T05:08:00Z",
        "url": "https://lucene.apache.org/"
      },
      "id": "9",
      "score": 0.3710793549141038
    },
    {
      "fields": {
        "_timestamp": "2021-12-10T13:03:18Z",
        "category": "/language/go",
        "description": "Riot is Go Open Source, Distributed, Simple and efficient full text search engine.",
        "name": "Riot",
        "popularity": 4948,
        "publish_date": "2019-12-15T22:12:00Z",
        "url": "https://github.com/go-ego/riot"
      },
      "id": "5",
      "score": 0.3611255085637879
    },
    {
      "fields": {
        "_timestamp": "2021-12-10T13:03:18Z",
        "category": "/language/rust",
        "description": "Tantivy is a full-text search engine library inspired by Apache Lucene and written in Rust.",
        "name": "Tantivy",
        "popularity": 3142,
        "publish_date": "2019-12-19T01:07:00Z",
        "url": "https://github.com/quickwit-inc/tantivy"
      },
      "id": "8",
      "score": 0.34530979286026436
    },
    {
      "fields": {
        "_timestamp": "2021-12-10T13:03:18Z",
        "category": "/language/java",
        "description": "Elasticsearch is a distributed, open source search and analytics engine for all types of data, including textual, numerical, geospatial, structured, and unstructured.",
        "name": "Elasticsearch",
        "popularity": 46054,
        "publish_date": "2019-12-18T23:19:00Z",
        "url": "https://www.elastic.co/products/elasticsearch"
      },
      "id": "3",
      "score": 0.13076457838717315
    },
    {
      "fields": {
        "_timestamp": "2021-12-10T13:03:18Z",
        "category": "/language/go",
        "description": "Phalanx is a cloud-native full-text search and indexing server written in Go built on top of Bluge that provides endpoints through gRPC and traditional RESTful API.",
        "name": "Phalanx",
        "popularity": 0,
        "publish_date": "2021-12-10T12:00:00Z",
        "url": "https://github.com/mosuka/phalanx"
      },
      "id": "1",
      "score": 0.13076457838717315
    },
    {
      "fields": {
        "_timestamp": "2021-12-10T13:03:18Z",
        "category": "/language/rust",
        "description": "Toshi is meant to be a full-text search engine similar to Elasticsearch. Toshi strives to be to Elasticsearch what Tantivy is to Lucene.",
        "name": "Toshi",
        "popularity": 2448,
        "publish_date": "2019-12-01T19:00:00Z",
        "url": "https://github.com/toshi-search/Toshi"
      },
      "id": "6",
      "score": 0.13076457838717315
    },
    {
      "fields": {
        "_timestamp": "2021-12-10T13:03:18Z",
        "category": "/language/go",
        "description": "Blast is a full text search and indexing server, written in Go, built on top of Bleve.",
        "name": "Blast",
        "popularity": 654,
        "publish_date": "2019-10-18T10:50:00Z",
        "url": "https://github.com/mosuka/blast"
      },
      "id": "4",
      "score": 0.08523749485612774
    },
    {
      "fields": {
        "_timestamp": "2021-12-10T13:03:18Z",
        "category": "/language/rust",
        "description": "Quickwit is a distributed search engine built from the ground up to offer cost-efficiency and high reliability.",
        "name": "quickwit",
        "popularity": 0,
        "publish_date": "2021-07-13T15:07:00Z",
        "url": "https://github.com/quickwit-inc/quickwit"
      },
      "id": "13",
      "score": 0.08063697039612684
    }
  ],
  "hits": 10,
  "index_name": "example_en"
}
Comments
  • Add DynamoDB storage

    Add DynamoDB storage

    This implements the metastore for AWS dynamodb.

    1. I have implemented most of the configuration options for DynamoDB based on your URL specification in https://mosuka.github.io/phalanx/lock_store.html
    2. I have added integration tests using the infrastructure / tooling in the project
    3. All the operations are "safe" for create / read and delete, there is currently no update. I added some generic errors to help with this.

    So some feedback on the storage interface, I don't think the context.Context or logger should be stored in the DynamodbStorage struct, i think each call should pass the ctx in and the logger should be pulled from the context. This would enable integration of tracing later on, with the ctx propagated all the way through the service.

    Need to work out how you want tests added, i have used github.com/ory/dockertest to enable use of dynamodb local inside a test, but this can also just be run with docker-compose or just started locally before running integration tests.

  • Golang search ecosystem opportunity ?

    Golang search ecosystem opportunity ?

    Hey @mosuka and @prabhatsharma and @mschoch

    I raised an Issue here that i would like you to have a look at if you don't mind: https://github.com/opensearch-project/opensearch-go/issues/82

    As a gopher i really like to run golang everywhere and i see a great synergy / opportunity here to really get a great Search ecosystem happening for golang.

    I want to stress that there is Text search and Elastic Search / opensearch-go both have different needs of course. But they both need an easy to run solution for gophers. So i wonder if there is some happy harmony possibility here ? Zinc is the API with a single non HA solution (Maintainer is @prabhatsharma) Phalanx has a HA solution for bluge (Maintainer is @mosuka)

    Zinc provides the API and single server solution. Phalanx could match the ZinC API and so provide a HA solution. Phalanx would also still provide its Facetted Text Search

    I am probably missing lots of detail here i know, but it woudl be great to know your thoughts. Maybe my proposed design solution is not optimal. But i think you can see my intent .

  • Bump github.com/prometheus/common from 0.33.0 to 0.38.0

    Bump github.com/prometheus/common from 0.33.0 to 0.38.0

    Bumps github.com/prometheus/common from 0.33.0 to 0.38.0.

    Release notes

    Sourced from github.com/prometheus/common's releases.

    v0.38.0

    • [FEATURE] Implement Stringer on TLSVersion (#405)
    • [FEATURE] Check if TLS certificate and key file have been modified (#345)
    • [ENHANCEMENT] Add the ability to specify the maximum acceptable TLS version (#414)
    • [ENHANCEMENT] Make LoadHTTPConfigFile set directory and move from tests file (#415)
    • [ENHANCEMENT] Get Revision from debug.BuildInfo if not explicitly set (#374)

    v0.35.0

    • [ENHANCEMENT] Static server: Add more mimetypes (#385)

    v0.36.0

    • [ENHANCEMENT] OAuth2: Respect disable keepalives option; Implement close idle connections (#390)
    • [ENHANCEMENT] Add User-Agent header to oauth2 requests #387

    v0.37.0

    • [ENHANCEMENT] Improve OAuth2 user agent handling (#391)

    v0.34.0

    • [ENHANCEMENT] Enable selecting minimum TLS version. #375
    Commits
    • a33c32f Merge pull request #374 from roidelapluie/go118vcs
    • 5b6c049 go118: Get VCS info from debug.BuildInfo
    • 11bcb5b Merge pull request #415 from FUSAKLA/fus-http-config-from-file
    • 87b669d Add the ability to specify the maximum acceptable TLS version (#414)
    • d9cd6f2 feat: make LoadHTTPConfigFile set directory and move from tests file
    • bebc731 Remove ioutil after merging check client certificates (#407)
    • 8c9cb3f Update common Prometheus files (#399)
    • 1c0fa3e Check if TLS certificate and key file have been modified (#345)
    • 54e041d Implement Stringer on TLSVersion (#405)
    • c206bfc Merge pull request #404 from thaJeztah/bump_protobuf_extensions
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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)
  • Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue from 1.8.4 to 1.10.7

    Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue from 1.8.4 to 1.10.7

    Bumps github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue from 1.8.4 to 1.10.7.

    Commits

    Dependabot compatibility score

    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)
  • Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression from 1.4.5 to 1.4.33

    Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression from 1.4.5 to 1.4.33

    Bumps github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression from 1.4.5 to 1.4.33.

    Commits

    Dependabot compatibility score

    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)
  • Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression from 1.4.5 to 1.4.32

    Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression from 1.4.5 to 1.4.32

    Bumps github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression from 1.4.5 to 1.4.32.

    Commits

    Dependabot compatibility score

    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)
  • Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue from 1.8.4 to 1.10.6

    Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue from 1.8.4 to 1.10.6

    Bumps github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue from 1.8.4 to 1.10.6.

    Commits

    Dependabot compatibility score

    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)
  • Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression from 1.4.5 to 1.4.31

    Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression from 1.4.5 to 1.4.31

    Bumps github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression from 1.4.5 to 1.4.31.

    Commits

    Dependabot compatibility score

    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)
  • Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue from 1.8.4 to 1.10.5

    Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue from 1.8.4 to 1.10.5

    Bumps github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue from 1.8.4 to 1.10.5.

    Changelog

    Sourced from github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue's changelog.

    Release (2022-11-21)

    Module Highlights

    • github.com/aws/aws-sdk-go-v2/service/route53: v1.25.0
      • Feature: Amazon Route 53 now supports the Asia Pacific (Hyderabad) Region (ap-south-2) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region.

    Release (2022-11-18.2)

    Module Highlights

    • github.com/aws/aws-sdk-go-v2/service/ssmsap: v1.0.1
      • Bug Fix: Removes old model file for ssm sap and uses the new model file to regenerate client

    Release (2022-11-18)

    General Highlights

    • Dependency Update: Updated to the latest SDK module versions

    Module Highlights

    • github.com/aws/aws-sdk-go-v2/service/appflow: v1.20.0
      • Feature: AppFlow provides a new API called UpdateConnectorRegistration to update a custom connector that customers have previously registered. With this API, customers no longer need to unregister and then register a connector to make an update.
    • github.com/aws/aws-sdk-go-v2/service/auditmanager: v1.21.0
      • Feature: This release introduces a new feature for Audit Manager: Evidence finder. You can now use evidence finder to quickly query your evidence, and add the matching evidence results to an assessment report.
    • github.com/aws/aws-sdk-go-v2/service/chimesdkvoice: v1.0.0
    • github.com/aws/aws-sdk-go-v2/service/cloudfront: v1.21.0
      • Feature: CloudFront API support for staging distributions and associated traffic management policies.
    • github.com/aws/aws-sdk-go-v2/service/connect: v1.38.0
      • Feature: Added AllowedAccessControlTags and TagRestrictedResource for Tag Based Access Control on Amazon Connect Webpage
    • github.com/aws/aws-sdk-go-v2/service/dynamodb: v1.17.6
      • Documentation: Updated minor fixes for DynamoDB documentation.
    • github.com/aws/aws-sdk-go-v2/service/dynamodbstreams: v1.13.25
      • Documentation: Updated minor fixes for DynamoDB documentation.
    • github.com/aws/aws-sdk-go-v2/service/ec2: v1.72.0
      • Feature: This release adds support for copying an Amazon Machine Image's tags when copying an AMI.
    • github.com/aws/aws-sdk-go-v2/service/glue: v1.35.0
      • Feature: AWSGlue Crawler - Adding support for Table and Column level Comments with database level datatypes for JDBC based crawler.
    • github.com/aws/aws-sdk-go-v2/service/iotroborunner: v1.0.0
    • github.com/aws/aws-sdk-go-v2/service/quicksight: v1.27.0
      • Feature: This release adds the following: 1) Asset management for centralized assets governance 2) QuickSight Q now supports public embedding 3) New Termination protection flag to mitigate accidental deletes 4) Athena data sources now accept a custom IAM role 5) QuickSight supports connectivity to Databricks
    • github.com/aws/aws-sdk-go-v2/service/sagemaker: v1.55.0
      • Feature: Added DisableProfiler flag as a new field in ProfilerConfig
    • github.com/aws/aws-sdk-go-v2/service/servicecatalog: v1.15.0
      • Feature: This release 1. adds support for Principal Name Sharing with Service Catalog portfolio sharing. 2. Introduces repo sourced products which are created and managed with existing SC APIs. These products are synced to external repos and auto create new product versions based on changes in the repo.
    • github.com/aws/aws-sdk-go-v2/service/sfn: v1.15.0
    • github.com/aws/aws-sdk-go-v2/service/transfer: v1.25.0
      • Feature: Adds a NONE encryption algorithm type to AS2 connectors, providing support for skipping encryption of the AS2 message body when a HTTPS URL is also specified.

    ... (truncated)

    Commits

    Dependabot compatibility score

    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)
  • Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue from 1.8.4 to 1.10.4

    Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue from 1.8.4 to 1.10.4

    Bumps github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue from 1.8.4 to 1.10.4.

    Commits

    Dependabot compatibility score

    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)
  • Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression from 1.4.5 to 1.4.30

    Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression from 1.4.5 to 1.4.30

    Bumps github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression from 1.4.5 to 1.4.30.

    Commits

    Dependabot compatibility score

    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)
  • Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue from 1.8.4 to 1.10.8

    Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue from 1.8.4 to 1.10.8

    Bumps github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue from 1.8.4 to 1.10.8.

    Commits

    Dependabot compatibility score

    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)
  • Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression from 1.4.5 to 1.4.34

    Bump github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression from 1.4.5 to 1.4.34

    Bumps github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression from 1.4.5 to 1.4.34.

    Commits

    Dependabot compatibility score

    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)
  • Bump github.com/prometheus/common from 0.33.0 to 0.39.0

    Bump github.com/prometheus/common from 0.33.0 to 0.39.0

    Bumps github.com/prometheus/common from 0.33.0 to 0.39.0.

    Release notes

    Sourced from github.com/prometheus/common's releases.

    v0.39.0

    • [ENHANCEMENT] Add support for proxy connect headers. #409
    • [ENHANCEMENT] Add platform info to labels. #403

    v0.37.1

    • [BUGFIX] Update go.mod for CVE-2022-41717 #420

    v0.38.0

    • [FEATURE] Implement Stringer on TLSVersion (#405)
    • [FEATURE] Check if TLS certificate and key file have been modified (#345)
    • [ENHANCEMENT] Add the ability to specify the maximum acceptable TLS version (#414)
    • [ENHANCEMENT] Make LoadHTTPConfigFile set directory and move from tests file (#415)
    • [ENHANCEMENT] Get Revision from debug.BuildInfo if not explicitly set (#374)

    v0.35.0

    • [ENHANCEMENT] Static server: Add more mimetypes (#385)

    v0.36.0

    • [ENHANCEMENT] OAuth2: Respect disable keepalives option; Implement close idle connections (#390)
    • [ENHANCEMENT] Add User-Agent header to oauth2 requests #387

    v0.37.0

    • [ENHANCEMENT] Improve OAuth2 user agent handling (#391)

    v0.34.0

    • [ENHANCEMENT] Enable selecting minimum TLS version. #375
    Commits
    • 296ec92 Merge pull request #409 from prometheus/mem/proxy_header
    • 18281a2 Merge pull request #424 from prometheus/repo_sync
    • 4a0d730 Add support for proxy connect headers
    • 017dec0 Update common Prometheus files
    • befeabf Merge pull request #422 from prometheus/superq/add_mod_check
    • 1bc7f65 Add platform info to labels (#403)
    • 82accf3 Add go mod version test
    • 00e3fd7 Merge pull request #418 from roidelapluie/go119
    • 045094f Update deps and test with go 1.19
    • ddb642f Merge pull request #421 from prometheus/superq/update_sigv4
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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)
  • Bump google.golang.org/grpc from 1.45.0 to 1.51.0

    Bump google.golang.org/grpc from 1.45.0 to 1.51.0

    Bumps google.golang.org/grpc from 1.45.0 to 1.51.0.

    Release notes

    Sourced from google.golang.org/grpc's releases.

    Release 1.51.0

    Behavior Changes

    • xds: NACK EDS resources with duplicate addresses in accordance with a recent spec change (#5715)
    • grpc: restrict status codes that can be generated by the control plane (gRFC A54) (#5653)

    New Features

    • client: set grpc-accept-encoding header with all registered compressors (#5541)
    • xds/weightedtarget: return a more meaningful error when all child policies are in TRANSIENT_FAILURE (#5711)
    • gcp/observability: add "started rpcs" metric (#5768)
    • xds: de-experimentalize the google-c2p-resolver (#5707)
    • balancer: add experimental Producer types and methods (#5669)
    • orca: provide a way for LB policies to receive OOB load reports (#5669)

    Bug Fixes

    • go.mod: upgrade x/text dependency to address CVE 2022-32149 (#5769)
    • client: fix race that could lead to an incorrect connection state if it was closed immediately after the server's HTTP/2 preface was received (#5714)
    • xds: ensure sum of the weights of all EDS localities at the same priority level does not exceed uint32 max (#5703)
    • client: fix binary logging bug which logs a server header on a trailers-only response (#5763)
    • balancer/priority: fix a bug where unreleased references to removed child policies (and associated state) was causing a memory leak (#5682)
    • xds/google-c2p: validate URI schema for no authorities (#5756)

    Release 1.50.1

    New Features

    • gcp/observability: support new configuration defined in public preview user guide

    Release 1.50.0

    Behavior Changes

    • client: use proper "@" semantics for connecting to abstract unix sockets. (#5678)
      • This is technically a bug fix; the result is that the address was including a trailing NULL byte, which it should not have. This may break users creating the socket in Go by prefixing a NULL instead of an "@", though, so calling it out as a behavior change.

    New Features

    • metadata: add experimental ValueFromIncomingContext to more efficiently retrieve a single value (#5596)
    • stats: provide peer information in HandleConn context (#5589)
    • xds: add support for Outlier Detection, enabled by default (#5435, #5673)

    Bug Fixes

    • client: fix deadlock in transport caused by GOAWAY racing with stream creation (#5652)

    ... (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)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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)
  • Bump github.com/fsnotify/fsnotify from 1.5.1 to 1.6.0

    Bump github.com/fsnotify/fsnotify from 1.5.1 to 1.6.0

    Bumps github.com/fsnotify/fsnotify from 1.5.1 to 1.6.0.

    Release notes

    Sourced from github.com/fsnotify/fsnotify's releases.

    v1.6.0

    This version of fsnotify needs Go 1.16 (this was already the case since 1.5.1, but not documented). It also increases the minimum Linux version to 2.6.32.

    Additions

    • all: add Event.Has() and Op.Has() (#477)

      This makes checking events a lot easier; for example:

      if event.Op&Write == Write && !(event.Op&Remove == Remove) {
      }
      

      Becomes:

      if event.Has(Write) && !event.Has(Remove) {
      }
      
    • all: add cmd/fsnotify (#463)

      A command-line utility for testing and some examples.

    Changes and fixes

    • inotify: don't ignore events for files that don't exist (#260, #470)

      Previously the inotify watcher would call os.Lstat() to check if a file still exists before emitting events.

      This was inconsistent with other platforms and resulted in inconsistent event reporting (e.g. when a file is quickly removed and re-created), and generally a source of confusion. It was added in 2013 to fix a memory leak that no longer exists.

    • all: return ErrNonExistentWatch when Remove() is called on a path that's not watched (#460)

    • inotify: replace epoll() with non-blocking inotify (#434)

      Non-blocking inotify was not generally available at the time this library was written in 2014, but now it is. As a result, the minimum Linux version is bumped from 2.6.27 to 2.6.32. This hugely simplifies the code and is faster.

    • kqueue: don't check for events every 100ms (#480)

      The watcher would wake up every 100ms, even when there was nothing to do. Now it waits until there is something to do.

    • macos: retry opening files on EINTR (#475)

    • kqueue: skip unreadable files (#479)

      kqueue requires a file descriptor for every file in a directory; this would fail if a file was unreadable by the current user. Now these files are simply skipped.

    • windows: fix renaming a watched directory if the parent is also watched (#370)

    • windows: increase buffer size from 4K to 64K (#485)

    ... (truncated)

    Changelog

    Sourced from github.com/fsnotify/fsnotify's changelog.

    [1.6.0] - 2022-10-13

    This version of fsnotify needs Go 1.16 (this was already the case since 1.5.1, but not documented). It also increases the minimum Linux version to 2.6.32.

    Additions

    • all: add Event.Has() and Op.Has() (#477)

      This makes checking events a lot easier; for example:

      if event.Op&Write == Write && !(event.Op&Remove == Remove) {
      }
      

      Becomes:

      if event.Has(Write) && !event.Has(Remove) {
      }
      
    • all: add cmd/fsnotify (#463)

      A command-line utility for testing and some examples.

    Changes and fixes

    • inotify: don't ignore events for files that don't exist (#260, #470)

      Previously the inotify watcher would call os.Lstat() to check if a file still exists before emitting events.

      This was inconsistent with other platforms and resulted in inconsistent event reporting (e.g. when a file is quickly removed and re-created), and generally a source of confusion. It was added in 2013 to fix a memory leak that no longer exists.

    • all: return ErrNonExistentWatch when Remove() is called on a path that's not watched (#460)

    • inotify: replace epoll() with non-blocking inotify (#434)

      Non-blocking inotify was not generally available at the time this library was written in 2014, but now it is. As a result, the minimum Linux version is bumped from 2.6.27 to 2.6.32. This hugely simplifies the code and is faster.

    • kqueue: don't check for events every 100ms (#480)

      The watcher would wake up every 100ms, even when there was nothing to do. Now it waits until there is something to do.

    • macos: retry opening files on EINTR (#475)

    ... (truncated)

    Commits

    Dependabot compatibility score

    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)
  • [BUG] Panic: runtime error on invalid index creation

    [BUG] Panic: runtime error on invalid index creation

    Context: phalanx with file storage configured When I made a call to create index with minio & etcd took down whole phalanx with panic error:

    phalanx {"_level_":"info","_timestamp_":"2022-09-28T08:19:20.986Z","_name_":"phalanx","_caller_":"server/index_service.go:198","_message_":"opening index writers"} phalanx {"_level_":"error","_timestamp_":"2022-09-28T08:19:20.986Z","_name_":"phalanx.manager.writer.directory","_caller_":"directory/directory_minio.go:48","_message_":"Endpoint: does not follow ip address or domain name standards.","uri":"minio://phalanx/indexes/product/shard-2qpDDnjJ"} phalanx panic: runtime error: invalid memory address or nil pointer dereference phalanx [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x11ea50d] phalanx phalanx goroutine 49 [running]: phalanx github.com/mosuka/phalanx/directory.(*MinioDirectory).exists(0x0) phalanx /go/src/github.com/mosuka/phalanx/directory/directory_minio.go:77 +0x4d phalanx github.com/mosuka/phalanx/directory.(*MinioDirectory).Setup(0x0, 0xb) phalanx /go/src/github.com/mosuka/phalanx/directory/directory_minio.go:95 +0x53 phalanx github.com/blugelabs/bluge/index.OpenWriter({{0x15b6c0b, 0x3}, 0x1, 0xc0002263c0, 0x0, 0x0, 0x0, {0xa, 0x4c4b40, 0x4024000000000000, ...}, ...}) phalanx /go/pkg/mod/github.com/blugelabs/[email protected]/index/writer.go:85 +0x394 phalanx github.com/blugelabs/bluge.OpenWriter({{{0x15b6c0b, 0x3}, 0x1, 0xc0002263c0, 0x0, 0x0, 0x0, {0xa, 0x4c4b40, 0x4024000000000000, ...}, ...}, ...}) phalanx /go/pkg/mod/github.com/blugelabs/[email protected]/writer.go:36 +0xb8 phalanx github.com/mosuka/phalanx/index.(*IndexWriters).open(0xc00020b4a0, {0xc0005fc88a, 0x7}, {0xc0003a9a62, 0xe}, 0xc0005fe5a0, 0xc0001a8b00) phalanx /go/src/github.com/mosuka/phalanx/index/writer.go:107 +0x3b8 phalanx github.com/mosuka/phalanx/index.(*IndexWriters).Open(0xc00020b4a0, {0xc0005fc88a, 0x7}, {0xc0003a9a62, 0xe}, 0x0, 0x0) phalanx /go/src/github.com/mosuka/phalanx/index/writer.go:128 +0xe7 phalanx github.com/mosuka/phalanx/server.(*IndexService).assignShardsToNode(0xc000124a80) phalanx /go/src/github.com/mosuka/phalanx/server/index_service.go:216 +0x3ce5 phalanx github.com/mosuka/phalanx/server.(*IndexService).Start.func1() phalanx /go/src/github.com/mosuka/phalanx/server/index_service.go:114 +0x692 phalanx created by github.com/mosuka/phalanx/server.(*IndexService).Start phalanx /go/src/github.com/mosuka/phalanx/server/index_service.go:86 +0x5b

    The expected behaviour should be an appropriate HTTP error code returned, index creation attempt should not happened and the application should be functional

The gofinder program is an acme user interface to search through Go projects.

The gofinder program is an acme user interface to search through Go projects.

Jun 14, 2021
grpc + grpc gateway demo

grpc + grpc gateway demo

Nov 5, 2021
Example ReSTFul Server in Golang - SBU-Snapp-School

students.go Introduction ReSTful API to create, update, retrieve and delete students from a datastore. Requests needs validation, package needs tests,

Sep 14, 2022
go-playground-converter is formatter error response inspiration like express-validator in nodejs build on top go-playground-validator.

Go Playground Converter go-playground-converter is formatter error response inspiration like express-validator in nodejs build on top in go-playground

Dec 9, 2022
This Go based project of Aadhyarupam Innovators demonstrate the code examples for building microservices, integration with cloud services (Google Cloud Firestore), application configuration management (Viper) etc.

This Go based project of Aadhyarupam Innovators demonstrate the code examples for building microservices, integration with cloud services (Google Cloud Firestore), application configuration management (Viper) etc.

Dec 22, 2022
Zinc Search engine. A lightweight alternative to elasticsearch that requires minimal resources, written in Go.
Zinc Search engine. A lightweight alternative to elasticsearch that requires minimal resources, written in Go.

Zinc Search Engine Zinc is a search engine that does full text indexing. It is a lightweight alternative to Elasticsearch and runs using a fraction of

Jan 1, 2023
using go search the Marvel universe characters via marvel api
using go search the Marvel universe characters via marvel api

go-marvel-api using go search the Marvel universe characters via marvel api Build and run tests on the local environemnt Build the project $ go build

Oct 5, 2021
A cli for fetching the status and full output of CircleCI jobs.

CCI A cli for fetching the status and full output of CircleCI jobs. Install go install github.com/tmessi/cci/cci@latest Usage cci is designed to have

Oct 29, 2021
batcher collect a data and flush it if the batch is full or the interval is elapsed.

Batcher batcher collect a data and flush it if the batch is full or the interval is elapsed. Installation go get github.com/gotidy/batcher Examples ba

Jan 6, 2022
Aplicações escaláveis com Go Lang - Full Cycle

Aplicacao Go Lang - FullCycle Aplicações escaláveis com Go Lang - Full Cycle Foi desenvolvido uma aplicação para processamento de uma transação em Go

Dec 22, 2021
customer.io full stack engineer take home project
customer.io full stack engineer take home project

customer.io full stack engineer take home project

Jan 21, 2022
Go-keymap - Generate keymap.c, layers.h and keymap.svg from visual keymaps defined through keymaps.json and .layer files
Go-keymap - Generate keymap.c, layers.h and keymap.svg from visual keymaps defined through keymaps.json and .layer files

generating keymap.c This utility can generate a keymap.c, layers.h and keymap.sv

Feb 15, 2022
Radiant is used for rapid development of enterprise application in Go, including RESTful APIs, web apps and backend services.

Radiant is used for rapid development of enterprise application in Go, including RESTful APIs, web apps and backend services.

Mar 22, 2022
Alerts on due products from Grocy through emails or other means.

grocy-alerts Grocy alerts was made in an attempt to give more visibility to expiring soon products in Grocy. Usage Fetch products from grocy api and c

Dec 7, 2021
🕕Todo management through emails
🕕Todo management through emails

??Todo management through emails

Nov 15, 2021
A server for TurboRepo Remote Cache to store cache artefacts in Google Cloud Storage or Amazon S3

Tapico Turborepo Remote Cache This is an implementation of Vercel's Turborepo Remote Cache API endpoints used by the turborepo CLI command. This solut

Dec 13, 2022
This api has been built according to the task assigned by Apponity.
This api has been built according to the task assigned by Apponity.

Appointy_Task This api has been built according to the task assigned by Apponity. All the tasks Provided have been completed Link to the Document of t

Oct 10, 2021
A project that provides an in-memory key-value store as a REST API. Also, it's containerized and can be used as a microservice.

Easy to Use In-Memory Key-Value Store A project that provides an in-memory key-value store as a REST API. Also, it's containerized and can be used as

Mar 6, 2022
Self hosted search engine for data leaks and password dumps
Self hosted search engine for data leaks and password dumps

Self hosted search engine for data leaks and password dumps. Upload and parse multiple files, then quickly search through all stored items with the power of Elasticsearch.

Aug 2, 2021