Motoko 路
![PRs Welcome](https://camo.githubusercontent.com/b0ad703a46e8b249ef2a969ab95b2cb361a2866ecb8fe18495a2229f5847102d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5052732d77656c636f6d652d627269676874677265656e2e737667)
A safe, simple, actor-based programming language for authoring Internet Computer (IC) canister smart contracts.
User Documentation & Samples
- Building, installing, and developing on Motoko.
- Overview.
- Small samples.
- Language manual.
- Concrete syntax.
- Documentation sources.
- Base library documentation.
- Motoko-san: a prototypical deductive verifier.
Introduction
Motivation and Goals
-
High-level language for programming IC applications
-
Simple ("K.I.S.S.") design and familiar syntax for average programmers
-
Good and convenient support for actor model
-
Good fit for underlying Wasm and IC execution model
-
Anticipate future extensions to Wasm where possible
Key Design Points
-
Simple class-based OO language, objects as closures
-
Classes can be actors
-
Async construct for direct-style programming of asynchronous messaging
-
Structurally typed with simple generics and subtyping
-
Overflow-checked number types, explicit conversions
-
JavaScript/TypeScript-style syntax but without the JavaScript madness
-
Inspirations from Java, C#, JavaScript, Swift, Pony, ML, Haskell
Related repositories
- Base library
- Vessel package manager
- Example projects
- Motoko Playground 路 (online IDE)
- Embed Motoko code snippets 路 (online interpreter)
- VS Code extension 路 (install)
- Browser and Node.js bindings 路 (npm package)
Community resources
- Awesome Motoko
- Blocks - an online low-code editor for Motoko
- MOPS - a Motoko package manager hosted on the IC
- Motoko Bootcamp 路 (YouTube channel)
- Motoko library starter template
Contribution
See our CONTRIBUTING and CODE OF CONDUCT to get started.