{"id":26159297,"url":"https://github.com/bjfssd757/grpc_server","last_synced_at":"2026-03-06T07:03:05.374Z","repository":{"id":279264986,"uuid":"938174365","full_name":"bjfssd757/gRPC_server","owner":"bjfssd757","description":"This repository shows an example of implementing a gRPC server and client in Rust","archived":false,"fork":false,"pushed_at":"2025-03-11T21:05:15.000Z","size":65,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-27T23:51:08.435Z","etag":null,"topics":["educative","frontendmasters","github","github-copilot","learn","notion","notion-templates"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bjfssd757.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2025-02-24T14:38:44.000Z","updated_at":"2025-03-16T10:15:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"9c782cf5-828d-45c6-9c79-726163087e05","html_url":"https://github.com/bjfssd757/gRPC_server","commit_stats":null,"previous_names":["bjfssd757/grpc_server"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjfssd757%2FgRPC_server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjfssd757%2FgRPC_server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjfssd757%2FgRPC_server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjfssd757%2FgRPC_server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bjfssd757","download_url":"https://codeload.github.com/bjfssd757/gRPC_server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248866797,"owners_count":21174600,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["educative","frontendmasters","github","github-copilot","learn","notion","notion-templates"],"created_at":"2025-03-11T11:21:03.104Z","updated_at":"2026-03-06T07:03:05.326Z","avatar_url":"https://github.com/bjfssd757.png","language":"Rust","readme":"![Rust](https://img.shields.io/badge/rust-%23000000.svg?style=for-the-badge\u0026logo=rust\u0026logoColor=white)\n\n# gRPC server\n\nЭтот репозиторий реализует gRPC сервер на языке Rust\n\n## Оглавление\n\n[Установка](#установка)\\\n[Клиент](#клиент)\\\n[База данных](#база-данных)\\\n[Изменения](#изменения)\n\n## Установка\n\nДля запуска проекта вам потребуется скачать Rust.\n\n* Качаем protocol buffers [github репозиторий](https://github.com/protocolbuffers/protobuf)\n\n\u003e [!TIP]\n\u003e Если вы используете unix систему: ```apt install -y protobuf-compiler```\n\u003e Если у вас возникли проблемы или вопросы на этом этапе, прочитайте [гайд по установке](https://grpc.io/docs/protoc-installation/)\n\n* Качаем Rust с [официального сайта](https://www.rust-lang.org/ru/tools/install)\n* Клонируем репозиторий: ```git clone https://github.com/bjfssd757/gRPC_server.git```\n* Запускаем сервер: ```cargo run --bin server```\n\n\u003e [!NOTE]\n\u003e Также вы можете запустить клиента: ```cargo run --bin client```.\\\n\u003e Учтите, что клиент может отправить запрос только на включённый сервер!\n\n## Клиент\n\nКод клиента реализован в файле [client.rs](src/client.rs)\n\nВ любом случае для связи с сервером вам потребуется gRPC клиент, т.к. не все браузеры способны обрабатывать ответы от таких серверов. Также важно иметь такие же .proto файлы, какие есть на сервере.\n\n\u003e [!TIP]\n\u003e На самом деле функционал \"передачи\" .proto файлов при обращении на сервер есть. О нём можно почитать в Интернете. На данный момент (пока вы видите эту вставку) данный проект не реализует такого функционала на клиенте.\n\n## База данных\n\n\u003e [!WARNING]\n\u003e На данный момент база данных работает не стабильно и может не запуститься! Если вы столкнули с такой проблемой, то большая просьба сообщить о ней в [issues](https://github.com/bjfssd757/gRPC_server/issues), упоминув свою операционную систему и сообщение об ошибке!\\\n\u003e Если вы не хотите использовать базу данных, то вам потребуется удалить [файл .env](.env), файлы [models.rs](src/models.rs), [schema.rs](src/schema.rs) и [diesel.toml](diesel.toml), а также удалить зависимости из [Cargo.toml](Cargo.toml) (не обязательно, но желательно): r2d2, diesel, diesel_cli, r2d2-diesel. После этого вам потребуется переписать логику программы в файле [main.rs](src/main.rs) в ```impl Calendar for CalendarService``` и ```impl CalendarService``` (129 и 108 строки соответственно). Вероятно, что вам также потребуется изменить типы данных в структурах (```struct```) и сообщения (```message```) в proto-файлах\\\n\u003e Учтите, что для этого вам потребуются знания gRPC и в особенности языка Rust.\\\n\u003e В будущем эта проблема будет решена!\n\nВ данном примере Rust работает с базой данных PostgreSQL с помощью библиотеки [Diesel](https://diesel.rs/).\n\nВ файле [.env](.env) указывается путь до вашей базы данных:\n```DATABASE_URL=postgres://ваше_имя_профиля:ваш_пароль@localhost/название_базы_данных```\\\nГде ```ваше_имя_профиля``` - ваше имя в postgres;\\\n```ваш_пароль``` - пароль postgres;\\\n```localhost``` - адрес для подключения к базе. В данном случае база находится на этом же устройстве. Если потребуется, замените на нужный вам IP адрес;\\\n```название_базы_данных``` - название базы данных, с которой вы будете работать.\n\nПеред запуском сервера вам необходимо создать базу данных PostgreSQL.\\\nSQL shell (windows):\n\n```sql\ncreate database your_name;\n\\c your_name\ncreate table table_name (smth);\n```\n\n## Изменения\n\nПроект будет развиваться со временем: исправление багов, добавление нового функционала!\\\nСледите за обновлениями!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbjfssd757%2Fgrpc_server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbjfssd757%2Fgrpc_server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbjfssd757%2Fgrpc_server/lists"}