{"id":20614388,"url":"https://github.com/cnstr/api","last_synced_at":"2025-04-15T07:31:35.105Z","repository":{"id":65439744,"uuid":"401597711","full_name":"cnstr/api","owner":"cnstr","description":"The API for Canister (version 2)","archived":false,"fork":false,"pushed_at":"2024-12-09T07:39:46.000Z","size":15410,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T17:57:24.999Z","etag":null,"topics":["docker","kubernetes","postgres","rust","tide","typesense"],"latest_commit_sha":null,"homepage":"https://docs.canister.me","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cnstr.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":"2021-08-31T06:31:18.000Z","updated_at":"2024-12-09T07:39:48.000Z","dependencies_parsed_at":"2024-03-24T21:25:34.878Z","dependency_job_id":"581cb6b8-18bd-4579-ae30-f4cb9f61a020","html_url":"https://github.com/cnstr/api","commit_stats":null,"previous_names":[],"tags_count":89,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnstr%2Fapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnstr%2Fapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnstr%2Fapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnstr%2Fapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cnstr","download_url":"https://codeload.github.com/cnstr/api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249026800,"owners_count":21200508,"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":["docker","kubernetes","postgres","rust","tide","typesense"],"created_at":"2024-11-16T11:12:36.877Z","updated_at":"2025-04-15T07:31:35.034Z","avatar_url":"https://github.com/cnstr.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Canister API\n\n\u003e The API for Canister (version 2)\n\n![Build Status](https://img.shields.io/github/actions/workflow/status/cnstr/ci/api.yaml)\n[![Codacy](https://img.shields.io/codacy/grade/d7ce92011567411a85f69098196e961e)](https://www.codacy.com?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=cnstr/api\u0026amp;utm_campaign=Badge_Grade)\n![Uptime](https://img.shields.io/website?down_message=offline\u0026label=status\u0026up_message=online\u0026url=https%3A%2F%2Fapi.canister.me%2Fv2%2Fhealthz)\n![Release](https://img.shields.io/github/v/tag/cnstr/api?label=release\u0026cacheSeconds=3600)\n![License](https://img.shields.io/github/license/cnstr/api?cacheSeconds=3600)\n\nThis project hosts the Canister API and accompanying services.\u003cbr\u003e\nIt is written in Rust and utilizes various crates such as:\n\n- [`axum`](https://github.com/tokio-rs/axum) for the web server\n- [`reqwest`](https://github.com/seanmonstar/reqwest) for the HTTP client\n- [`prisma`](https://prisma.io) for the database client (via [`prisma-client-rs`](https://github.com/Brendonovich/prisma-client-rust))\n\nThe API is deployed on Kubernetes and is accessible [here](https://api.canister.me/v2/).\u003cbr\u003e\nIf you're interested in the API documentation, you can find it [here](https://docs.canister.me).\n\n### Development\n\nThis project utilizes [`task`](https://taskfile.dev) and `docker compose` for a development environment.\u003cbr\u003e\nIn order to populate the databases, [`cnstr/core`](https://github.com/cnstr/core) needs to be setup and run once.\u003cbr\u003e\nThe project also requires the Rust toolchain installed and `cargo-watch` installed (`cargo install cargo-watch`).\u003cbr\u003e\nOnce you have setup everything, running `task dev` will start the API with hot-reloading and the databases.\n\n### Deployment\n\n*This project isn't intended to be deployed by anyone other than the maintainers.*\u003cbr\u003e\n*When deployed, the project is relicensed under a proprietary license.*\n\nThe `task deploy` command will trigger the [CI/CD at `cnstr/ci`](https://github.com/cnstr/ci/actions/workflows/api.yaml).\u003cbr\u003e\nThe deployment will run the following steps:\n\n- Build and publish the Docker image to Google Artifact Registry (gcr.io)\n- Distribute and upload the OpenAPI reference to [bump.sh](https://bump.sh)\n- Rewrite the `kubernetes/api.yaml` file with the new image tag\n- Apply the new deployment to the cluster\n\n\u003e Copyright (c) 2023, Aarnav Tale\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcnstr%2Fapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcnstr%2Fapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcnstr%2Fapi/lists"}