{"id":13524279,"url":"https://github.com/dfinity/candid","last_synced_at":"2025-05-14T05:11:14.859Z","repository":{"id":37960053,"uuid":"261247499","full_name":"dfinity/candid","owner":"dfinity","description":"Candid Library for the Internet Computer","archived":false,"fork":false,"pushed_at":"2025-05-13T09:09:22.000Z","size":2602,"stargazers_count":295,"open_issues_count":67,"forks_count":83,"subscribers_count":44,"default_branch":"master","last_synced_at":"2025-05-13T09:38:45.111Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/dfinity.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-05-04T17:10:42.000Z","updated_at":"2025-05-06T10:14:40.000Z","dependencies_parsed_at":"2023-02-18T03:31:10.485Z","dependency_job_id":"aae71dc8-60ac-4b35-b9c5-3969dd39e69f","html_url":"https://github.com/dfinity/candid","commit_stats":{"total_commits":361,"total_committers":44,"mean_commits":8.204545454545455,"dds":0.5290858725761773,"last_synced_commit":"55d34ec060bd9dc735ed577e6924ddac79a415bf"},"previous_names":[],"tags_count":54,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfinity%2Fcandid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfinity%2Fcandid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfinity%2Fcandid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfinity%2Fcandid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dfinity","download_url":"https://codeload.github.com/dfinity/candid/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253918846,"owners_count":21984250,"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":[],"created_at":"2024-08-01T06:01:08.608Z","updated_at":"2025-05-14T05:11:09.841Z","avatar_url":"https://github.com/dfinity.png","language":"Rust","readme":"# Candid\n\n![](https://github.com/dfinity/candid/workflows/Rust/badge.svg)\n\n\nCandid is an interface description language (IDL) for interacting with _canisters_ (also known as _services_ or _actors_) running on the Internet Computer. It provides a language-independent description of canister interfaces and\nthe data they exchange, with type safety and extensibility.\n\n## Documentation\n\n* The [spec](spec/) directory contains Candid specifications, including the [Candid language specification](spec/Candid.md) and a soundness proof.\n* The [official manual](https://internetcomputer.org/docs/current/developer-docs/build/candid/candid-intro/) is hosted by dfinity; see [./docs](docs/) for the source code.\n* Roman Kashitsyn's [Candid for engineers](https://mmapped.blog/posts/20-candid-for-engineers.html) blog post.\n* Joachim Breitner's [Candid explainer](https://www.joachim-breitner.de/blog/782-A_Candid_explainer__The_rough_idea) blog post.\n\n## Implementations\n\nCandid supports several different programming languages.\nThis repository contains some of the implementations developed by DFINITY.\n\n* [Rust](rust/): A serialization library based on Serde, and a compiler for generating bindings for other languages.\n* [Motoko](https://github.com/dfinity/motoko): Compiler support for importing/export Candid files. Also see the [Motoko-Candid type mapping specification](https://github.com/dfinity/motoko/blob/master/design/IDL-Motoko.md).\n* [JavaScript](https://github.com/dfinity/agent-js/tree/main/packages/candid): We provide a library for serialization of native JavaScript values, and a visitor class for extending Candid for building generic tools such as UI and random testing.\n\nA list of community maintained Candid libraries:\n\n* [Haskell](https://github.com/nomeata/haskell-candid)\n* [Elm](https://github.com/chenyan2002/ic-elm/)\n* [Kotlin](https://github.com/seniorjoinu/candid-kt)\n* [AssemblyScript](https://github.com/rckprtr/cdk-as/tree/master/packages/cdk/assembly/candid)\n* [Java](https://github.com/ic4j/ic4j-candid)\n* [Dart](https://github.com/levifeldman/ic_tools_dart)\n* [Motoko](https://github.com/edjcase/motoko_candid)\n* [C#](https://github.com/edjCase/ICP.NET/tree/main/src/Candid)\n* [C++](https://github.com/icppWorld/icpp-candid)\n* [Python](https://github.com/rocklabs-io/ic-py)\n\n## Tools\n\n* [didc](tools/didc): Candid CLI. Download [prebuilt binary](https://github.com/dfinity/candid/releases).\n* [ui](tools/ui): Candid UI canister. See deployed [canister](https://a4gq6-oaaaa-aaaab-qaa4q-cai.raw.ic0.app/) on the IC\n* [ic-repl](https://github.com/chenyan2002/ic-repl): A REPL environment to communicate with canisters using Candid\n* [Explain Candid](https://fxa77-fiaaa-aaaae-aaana-cai.raw.icp0.io/explain): An online tool that decodes and explains a given Candid message. (Thanks to Ben Lynn)\n* [Candid playground](https://sehgq-cqaaa-aaaap-ahc4q-cai.icp0.io/playground): A playground that generates UI dynamically as you type in the Candid definitions. (Thanks to B3Forge)\n\n## Tests\n\nWe provide a [test suite](test/) to check Candid implementations for compliance.\n\n## Release\n\nTo make a release in this repo:\n\n* Update `Changelog.md` and merge the PR into master.\n* `git tag 2020-04-01 -m \"2020-04-01\"`\n* `git push origin 2020-04-01`\n\nThe tag is always today's date. As the repo contains several targets, it is hard to give a version to the tag.\n\n## Contribution\n\nSee our [CONTRIBUTING](.github/CONTRIBUTING.md) and [CODE OF CONDUCT](.github/CODE_OF_CONDUCT.md) to get started.\n","funding_links":[],"categories":["Candid","Metaverse, NFTs \u0026 Gaming"],"sub_categories":["Libraries / Frameworks"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfinity%2Fcandid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdfinity%2Fcandid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfinity%2Fcandid/lists"}