mikera / convex.cljc-1

Any aspect of the Convex stack, from Clojure

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Any aspect of the Convex stack

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 Clojars cljdoc /
:project/gen Clojars cljdoc /
:project/net Clojars cljdoc /
: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.

Community

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/

This repository

Each project follows a predictable structure:

  • Project details are exposed in a dedicated README
  • All source is located under the ./src directory of each project or subproject
  • Source is subdivided by language (eg. clj, cvx) and then by purpose (eg. main, test)
  • All scripts and tasks are located and executed at the root of this repository

The following conventions are enforced in READMEs and source files:

  • Namespaces shorten convex into $: convex.cvm -> $.cvm
  • Symbols referring to collections are pluralized with + at the end: items -> item+

More information about maintenance and organization can be found in this file.

License

Copyright © 2021 Adam Helinski, the Convex Foundation, and contributors

Licensed under the Apache License, Version 2.0

About

Any aspect of the Convex stack, from Clojure

License:Apache License 2.0


Languages

Language:Clojure 100.0%