candid alternatives and similar packages
Based on the "Codec" category.
Alternatively, view candid alternatives based on common mentions on social networks and blogs.
-
threefish
Haskell implementation of the Threefish block cipher and the Skein hash function built on it.
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of candid or a related project?
README
Candid
Candid 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 the data they exchange, with type safety and extensibility.
Documentation
- The [spec](spec/) directory contains Candid specifications, including the [Candid language specification](spec/Candid.md) and a soundness proof.
- The official manual is hosted by dfinity; see [./docs](docs/) for the source code.
Implementations
Candid supports several different programming languages. This repository contains some of the implementations developed by DFINITY.
- [Rust](rust/): A serialization library based on Serde, and a compiler for generating bindings for other languages.
- Motoko: Compiler support for importing/export Candid files. Also see the Motoko-Candid type mapping specificatoin.
- JavaScript: 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.
A list of community maintained Candid libraries:
Tools
- [didc](tools/didc): Candid CLI. Download prebuilt binary.
- [candiff](tools/candiff): Diff Candid values structurally
- [ui](tools/ui): Candid UI canister. See deployed canister on the IC
- ic-repl: A REPL environment to communicate with canisters using Candid
Tests
We provide a [test suite](test/) to check Candid implementations for compliance.
Release
To make a release in this repo:
- Update
Changelog.md
and merge the PR into master. git tag 2020-04-01 -m "2020-04-01"
git push origin 2020-04-01
The tag is always today's date. As the repo contains several targets, it is hard to give a version to the tag.
Contribution
See our [CONTRIBUTING](.github/CONTRIBUTING.md) and [CODE OF CONDUCT](.github/CODE_OF_CONDUCT.md) to get started.