{"id":37151930,"url":"https://github.com/marcojulian/calculator","last_synced_at":"2026-01-14T17:56:33.613Z","repository":{"id":192575794,"uuid":"431501396","full_name":"marcojulian/calculator","owner":"marcojulian","description":"Exercise project written in Go that I did on my own during the course \"gRPC [Golang] Master Class: Build Modern API \u0026 Microservices\" taught by Stephane Maarek on Udemy ","archived":false,"fork":false,"pushed_at":"2021-11-25T19:38:44.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-09T21:44:21.300Z","etag":null,"topics":["go","golang","grpc","ssl","udemy-course-project"],"latest_commit_sha":null,"homepage":"https://www.udemy.com/course/grpc-golang/","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/marcojulian.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":"2021-11-24T13:47:00.000Z","updated_at":"2024-01-16T16:05:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"6be90db3-880e-44ad-aa33-cfc2ec1a06f5","html_url":"https://github.com/marcojulian/calculator","commit_stats":null,"previous_names":["marcojulian/calculator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/marcojulian/calculator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcojulian%2Fcalculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcojulian%2Fcalculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcojulian%2Fcalculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcojulian%2Fcalculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcojulian","download_url":"https://codeload.github.com/marcojulian/calculator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcojulian%2Fcalculator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28429064,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T16:38:47.836Z","status":"ssl_error","status_checked_at":"2026-01-14T16:34:59.695Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["go","golang","grpc","ssl","udemy-course-project"],"created_at":"2026-01-14T17:56:33.023Z","updated_at":"2026-01-14T17:56:33.609Z","avatar_url":"https://github.com/marcojulian.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# calculator\nExercise project written in Go that I did on my own during the course \"gRPC [Golang] Master Class: Build Modern API \u0026amp; Microservices\" taught by Stephane Maarek on Udemy. \n\nThis project is a demostration of the things I learned while doing the course. Here I show the four types of comunication between server and client (unary, server\nstreaming, client streaming, and bidirectional streaming), alongside with some other topics like the errors in gRPC, deadlines, reflection, and ssl encryption.\n\n### Generating gRPC files\nTo generate the files related to gRPC you just need to run the contents of `generate.sh` or just run the file with sh or bash.\n```\n$ sh generate.sh\n```\n\n### Reflection\nIf you want to explore the service run [evans](https://github.com/ktr0731/evans) with this command while running the server.\n```\n$ evans -t --cacert ssl/ca.crt --servername localhost -r -p 50051\n```\n\n### Running the code\nYou will need two terminals for both the server and the client and run this on each of them:\n```\ngo run server/server.go\n```\n```\ngo run client/client.go\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcojulian%2Fcalculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcojulian%2Fcalculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcojulian%2Fcalculator/lists"}