{"id":17279987,"url":"https://github.com/aaqaishtyaq/bookmark-service","last_synced_at":"2026-05-04T03:35:49.616Z","repository":{"id":103459072,"uuid":"502440655","full_name":"aaqaishtyaq/bookmark-service","owner":"aaqaishtyaq","description":"CRUD application for managing bookmarks using gRPC","archived":false,"fork":false,"pushed_at":"2022-09-09T18:01:58.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"trunk","last_synced_at":"2025-03-26T14:53:25.376Z","etag":null,"topics":["golang","grpc","grpc-go","microservice"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aaqaishtyaq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-11T19:39:42.000Z","updated_at":"2022-06-17T08:23:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"2f02b519-f800-4aca-8ff5-fde03a2d0f99","html_url":"https://github.com/aaqaishtyaq/bookmark-service","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aaqaishtyaq/bookmark-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaqaishtyaq%2Fbookmark-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaqaishtyaq%2Fbookmark-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaqaishtyaq%2Fbookmark-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaqaishtyaq%2Fbookmark-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aaqaishtyaq","download_url":"https://codeload.github.com/aaqaishtyaq/bookmark-service/tar.gz/refs/heads/trunk","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaqaishtyaq%2Fbookmark-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32593945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"online","status_checked_at":"2026-05-04T02:00:06.625Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["golang","grpc","grpc-go","microservice"],"created_at":"2024-10-15T09:19:11.234Z","updated_at":"2026-05-04T03:35:49.602Z","avatar_url":"https://github.com/aaqaishtyaq.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bookmark Service\nGolang Server gRPC CRUD App\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Features](#features)\n- [Requirements](#requirements)\n- [Quickstart](#quickstart)\n- [Architecture](#architecture)\n- [Todo](#todo)\n- [Credits](#credits)\n\n## Overview\n\nBasic Go Client/Server CRUD app using gRPC.\n\n## Features\n\n- [gRPC](https://grpc.io/docs/)\n- [Protobuf Format and Protoc](https://github.com/protocolbuffers/protobuf)\n- SQLite\n\n## Requirements\n\n- [Docker](https://www.docker.com/)\n- [Docker-Compose](https://docs.docker.com/compose/install/)\n- [Protocol Buffer Compiler (Protoc)](https://developers.google.com/protocol-buffers/docs/downloads)\n  - [Binary Releases](https://github.com/protocolbuffers/protobuf/releases/tag/v3.6.1)\n  - [Installation Instructions](https://github.com/google/protobuf)\n- [SQLite](https://www.sqlite.org/download.html)\n\n## Configuration\n\nRuntime environment variables that need to be in your Shell.\n\n| Parameter        | Example           | Description  |\n| ------------- |-------------| -----|\n| GOPATH | $HOME/$USER/go | |\n| GOROOT | /usr/local/go | |\n| GOBIN | $HOME/$USER/go/bin | |\n\n---\n\n## Quickstart\n\n### 1. Download and Install The Protobuf Compiler (Protoc)\n\n- Place the binary somewhere in your `$PATH`\n\n```bash\n$ which protoc\n\n  /usr/local/bin/protoc\n```\n\n---\n\n#### 2. Compile the Proto Files\n\n```bash\n$ ./hack/proto-gen.sh\n\n./pkg\n|── api\n    └── v1\n        └── bookmark-service.pb.go\n\n```\n\n---\n\n#### 3. Start the Server\n\n- Build the server\n\n```console\n  % pushd cmd/server \u0026\u0026 go build \u0026\u0026 popd\n```\n\n- Run the server\n\n```console\n% ./cmd/server/server --grpc-port 55521\n```\n\n- Add Bookmark\n\n```console\n% grpcurl -d '{\"api\" : \"v1\", \"bookmark\" : {\"url\" : \"aaqa.dev\"} }' -plaintext localhost:55521 v1.BookmarkService/CreateBookmark\n```\n\n- List Bookmarks\n\n```console\n% grpcurl -plaintext localhost:55521 v1.BookmarkService/ListBookmarks\n```\n\n## Architecture\n\n```console\n.\n├── README.md\n├── api\n│   └── proto\n│       └── v1\n│           └── bookmark-service.proto           - V1 Proto Description\n├── cmd\n│   └── server\n│       └── main.go                              - Server entrypoint\n├── go.mod\n├── go.sum\n├── hack\n│   └── proto-gen.sh\n└── pkg\n    ├── api\n    │   └── v1\n    │       ├── bookmark-service.pb.go           - Compiled Protobuf TodoService Package (Autogenerated by protoc-gen-go)\n    │       └── bookmark-service_grpc.pb.go\n    ├── logger\n    │   └── log.go\n    └── service\n        └── v1\n            └── bookmark-service.go              - CRUD functionality using compiled protobuf API and PB definitions\n\n```\n\n## Todo\n\n- CLI Client.\n- Add Remaining methods for CRUD ops.\n- Add REST Server and Swagger Files.\n\n## Credits\n\n- [Aleksandr Sokolovskii](https://github.com/amsokol)\n- [go-grpc-http-rest-microservice-tutorial](https://medium.com/@amsokol.com/tutorial-how-to-develop-go-grpc-microservice-with-http-rest-endpoint-middleware-kubernetes-daebb36a97e9)\n- [Chris Paynes](https://github.com/chrispaynes/gRPCrud)\n- [Go CRUD with MongoDB gRPC](https://itnext.io/learning-go-mongodb-crud-with-grpc-98e425aeaae6)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaqaishtyaq%2Fbookmark-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faaqaishtyaq%2Fbookmark-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaqaishtyaq%2Fbookmark-service/lists"}