This monorepo hosts a variety of applications and libraries written in Clojure providing access to all aspects of the Convex network.
Convex can be understood as public database replicated worldwide among peer nodes. The network is effectively permissionless and anyone is free to participate. Data is defined in accounts akin to namespaces. Anyone can read data from those accounts but only owners and programmatically authorized users can transact new data using cryptographic keys. A consensus algorithm between peers guarantees that the network is tamperproof.
Using such a network, it is possible to write decentralized applications (dApps) that do not need a centralized database or server, are censorship-resistant, and highly-available. Such characterics provide a robust framework for managing any kind of state, even digital assets.
Instead of relying on a query language like SQL or datalog, querying or transacting data on the network is done via Convex Lisp. Almost a subset of Clojure, it is a fully Turing-complete language centered on immutable values. It is effectively the very first decentralized Lisp in the history of computing. A guide is accessible at this link.
Newcomers should follow progressive examples in :project/recipe
in order to better understand how
such a network works and how to build dApps in Clojure. Since Convex is written in Java, one can use the exact same
tools for writing applications that are being used for running the network.
Most useful modules from this repositories are:
Project | Library | Cljdoc | Download |
---|---|---|---|
:project/cvm | / | ||
:project/gen | / | ||
:project/net | / | ||
:project/run | / | / | CVX runner |
While these tools are used for talking to the network and handling data, the rest is usual application development and there is nothing specific about it.
This repository is discussed on the Clojurians Slack community at #convex
: https://join.slack.com/t/clojurians/shared_invite/zt-lsr4rn2f-jealnYXLHVZ61V2vdi15QQ
Discord is the primary channel for discussing the overall Convex project: https://discord.gg/5j2mPsk
Alternatively, email the core maintainer of this repository: adam(at)convex.world
More information about the Convex network: https://convex.world/
Each project follows a predictable structure:
./src
directory of each project or subprojectclj
, cvx
) and then by purpose (eg. main
, test
)The following conventions are enforced in READMEs and source files:
convex
into $
: convex.cvm
-> $.cvm
+
at the end: items
-> item+
More information about maintenance and organization can be found in this file.
Copyright © 2021 Adam Helinski, the Convex Foundation, and contributors
Licensed under the Apache License, Version 2.0
Can you improve this documentation? These fine people already did:
Adam Helinski & Adam HelinsEdit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close