Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/onflow/cadence
Cadence, the resource-oriented smart contract programming language ๐โโ๏ธ
https://github.com/onflow/cadence
cadence language onflow programming-language smart-contracts
Last synced: 3 days ago
JSON representation
Cadence, the resource-oriented smart contract programming language ๐โโ๏ธ
- Host: GitHub
- URL: https://github.com/onflow/cadence
- Owner: onflow
- License: apache-2.0
- Created: 2020-04-17T23:09:27.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T22:21:35.000Z (2 months ago)
- Last Synced: 2024-10-30T00:43:34.680Z (2 months ago)
- Topics: cadence, language, onflow, programming-language, smart-contracts
- Language: Go
- Homepage: https://cadence-lang.org
- Size: 79.9 MB
- Stars: 533
- Watchers: 43
- Forks: 140
- Open Issues: 161
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
- Security: SECURITY.md
- Roadmap: ROADMAP.md
Awesome Lists containing this project
- best-of-crypto - GitHub - 20% open ยท โฑ๏ธ 05.06.2024): (Others)
README
[![CI](https://github.com/onflow/cadence/actions/workflows/ci.yml/badge.svg)](https://github.com/onflow/cadence/actions/workflows/ci.yml)
# Cadence
## Introduction
Cadence is a resource-oriented programming language that introduces new features
to smart contract programming that help developers ensure that their code is
safe, secure, clear, and approachable.Some of these features are:
- Type safety and a strong static type system
- Resource-oriented programming, a new paradigm that pairs linear types with
object capabilities to create a secure and declarative model for digital
ownership by ensuring that resources (and their associated assets) can only
exist in one location at a time, cannot be copied, and cannot be accidentally
lost or deleted
- Built-in pre-conditions and post-conditions for functions and transactions
- The utilization of capability-based security, which enforces access control by
requiring that access to objects is restricted to only the owner and those who
have a valid reference to the object## Getting Started
To get started writing Cadence, why not try out the
[Playground](https://play.onflow.org/)?If you want to develop locally, use these tools:
* [Flow CLI](https://github.com/onflow/flow-cli),
which includes the [Flow emulator](https://github.com/onflow/flow-emulator). The emulator is a lightweight tool that emulates the behaviour of the real Flow network.
* [Visual Studio Code extension](https://github.com/onflow/vscode-cadence). The Visual Studio Code extension enables the development, deployment of, and interaction with Cadence contracts.## Documentation
Check out the [Cadence Docs](https://docs.onflow.org/cadence/language/).
## Contributing
If you would like to contribute to Cadence, have a look at the [contributing guide](https://github.com/onflow/cadence/blob/master/CONTRIBUTING.md).
Development documentation can be found in the [`/docs` directory](https://github.com/onflow/cadence/tree/master/docs).
For example, it contains the source for the language reference.