• Stars
    star
    241
  • Rank 167,643 (Top 4 %)
  • Language
  • Created almost 6 years ago
  • Updated almost 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Cryptographic Autonomy License is a new breed of open license that protects not just the app developers and users of the source code but also end user privacy and control of identity and data.

Cryptographic Autonomy License version 1.0

This Cryptographic Autonomy License (the “License”) applies to any Work whose owner has marked it with any of the following notices:

“Licensed under the Cryptographic Autonomy License version 1.0,” or

“SPDX-License-Identifier: CAL-1.0,” or

“Licensed under the Cryptographic Autonomy License version 1.0, with Combined Work Exception,” or

“SPDX-License-Identifier: CAL-1.0 with Combined-Work-Exception.”


1. Purpose

This License gives You unlimited permission to use and modify the software to which it applies (the “Work”), either as-is or in modified form, for Your private purposes, while protecting the owners and contributors to the software from liability.

This License also strives to protect the freedom and autonomy of third parties who receive the Work from you. If any non-affiliated third party receives any part, aspect, or element of the Work from You, this License requires that You provide that third party all the permissions and materials needed to independently use and modify the Work without that third party having a loss of data or capability due to your actions.

The full permissions, conditions, and other terms are laid out below.

2. Receiving a License

In order to receive this License, You must agree to its rules. The rules of this License are both obligations of Your agreement with the Licensor and conditions to your License. You must not do anything with the Work that triggers a rule You cannot or will not follow.

2.1. Application

The terms of this License apply to the Work as you receive it from Licensor, as well as to any modifications, elaborations, or implementations created by You that contain any licenseable portion of the Work (a “Modified Work”). Unless specified, any reference to the Work also applies to a Modified Work.

2.2. Offer and Acceptance

This License is automatically offered to every person and organization. You show that you accept this License and agree to its conditions by taking any action with the Work that, absent this License, would infringe any intellectual property right held by Licensor.

2.3. Compliance and Remedies

Any failure to act according to the terms and conditions of this License places Your use of the Work outside the scope of the License and infringes the intellectual property rights of the Licensor. In the event of infringement, the terms and conditions of this License may be enforced by Licensor under the intellectual property laws of any jurisdiction to which You are subject. You also agree that either the Licensor or a Recipient (as an intended third-party beneficiary) may enforce the terms and conditions of this License against You via specific performance.

3. Permissions and Conditions

3.1. Permissions Granted

Conditioned on compliance with section 4, and subject to the limitations of section 3.2, Licensor grants You the world-wide, royalty-free, non-exclusive permission to:

a) Take any action with the Work that would infringe the non-patent intellectual property laws of any jurisdiction to which You are subject; and

b) Take any action with the Work that would infringe any patent claims that Licensor can license or becomes able to license, to the extent that those claims are embodied in the Work as distributed by Licensor.

3.2. Limitations on Permissions Granted

The following limitations apply to the permissions granted in section 3.1:

a) Licensor does not grant any patent license for claims that are only infringed due to modification of the Work as provided by Licensor, or the combination of the Work as provided by Licensor, directly or indirectly, with any other component, including other software or hardware.

b) Licensor does not grant any license to the trademarks, service marks, or logos of Licensor, except to the extent necessary to comply with the attribution conditions in section 4.1 of this License.

4. Conditions

If You exercise any permission granted by this License, such that the Work, or any part, aspect, or element of the Work, is distributed, communicated, made available, or made perceptible to a non-Affiliate third party (a “Recipient”), either via physical delivery or via a network connection to the Recipient, You must comply with the following conditions:

4.1. Provide Access to Source Code

Subject to the exception in section 4.4, You must provide to each Recipient a copy of, or no-charge unrestricted network access to, the Source Code corresponding to the Work.

The “Source Code” of the Work means the form of the Work preferred for making modifications, including any comments, configuration information, documentation, help materials, installation instructions, cryptographic seeds or keys, and any information reasonably necessary for the Recipient to independently compile and use the Source Code and to have full access to the functionality contained in the Work.

4.1.1. Providing Network Access to the Source Code

Network access to the Notices and Source Code may be provided by You or by a third party, such as a public software repository, and must persist during the same period in which You exercise any of the permissions granted to You under this License and for at least one year thereafter.

4.1.2. Source Code for a Modified Work

Subject to the exception in section 4.5, You must provide to each Recipient of a Modified Work Access to Source Code corresponding to those portions of the Work remaining in the Modified Work as well as the modifications used by You to create the Modified Work. The Source Code corresponding to the modifications in the Modified Work must be provided to the Recipient either a) under this License, or b) under a Compatible Open Source License.

A “Compatible Open Source License” means a license accepted by the Open Source Initiative that allows object code created using both Source Code provided under this License and Source Code provided under the other open source license to be distributed together as a single work.

4.1.3. Coordinated Disclosure of Security Vulnerabilities

You may delay providing the Source Code corresponding to a particular modification of the Work for up to ninety (90) days (the “Embargo Period”) if: a) the modification is intended to address a newly-identified vulnerability or a security flaw in the Work, b) disclosure of the vulnerability or security flaw before the end of the Embargo Period would put the data, identity, or autonomy of one or more Recipients of the Work at significant risk, c) You are participating in a coordinated disclosure of the vulnerability or security flaw with one or more additional Licensees, and d) Access to the Source Code pertaining to the modification is provided to all Recipients at the end of the Embargo Period.

4.2. Maintain User Autonomy

In addition to providing each Recipient the opportunity to have Access to the Source Code, You cannot use the permissions given under this License to interfere with a Recipient’s ability to fully use an independent copy of the Work generated from the Source Code You provide with the Recipient’s own User Data.

“User Data” means any data that is an input to or an output from the Work, where the presence of the data is necessary for substantially identical use of the Work in an equivalent context chosen by the Recipient, and where the Recipient has an existing ownership interest, an existing right to possess, or where the data has been generated by, for, or has been assigned to the Recipient.

4.2.1. No Withholding User Data

Throughout any period in which You exercise any of the permissions granted to You under this License, You must also provide to any Recipient to whom you provide services via the Work, a no-charge copy, provided in a commonly used electronic form, of the Recipient’s User Data in your possession, to the extent that such User Data is available to You for use in conjunction with the Work.

4.2.2. No Technical Measures that Limit Access

You may not, by the use of cryptographic methods applied to anything provided to the Recipient, by possession or control of cryptographic keys, seeds, or hashes, by other technological protection measures, or by any other method, limit a Recipient's ability to access any functionality present in the Recipient's independent copy of the Work, or deny a Recipient full control of the Recipient's User Data.

4.2.3. No Legal or Contractual Measures that Limit Access

You may not contractually restrict a Recipient's ability to independently exercise the permissions granted under this License. You waive any legal power to forbid circumvention of technical protection measures that include use of the Work, and You waive any claim that the capabilities of the Work were limited or modified as a means of enforcing the legal rights of third parties against Recipients.

4.3. Provide Notices and Attribution

You must retain all licensing, authorship, or attribution notices contained in the Source Code (the “Notices”), and provide all such Notices to each Recipient, together with a statement acknowledging the use of the Work. Notices may be provided directly to a Recipient or via an easy-to-find hyperlink to an Internet location also providing Access to Source Code.

4.4. Scope of Conditions in this License

You are required to uphold the conditions of this License only relative to those who are Recipients of the Work from You. Other than providing Recipients with the applicable Notices, Access to Source Code, and a copy of and full control of their User Data, nothing in this License requires You to provide processing services to or engage in network interactions with anyone.

4.5. Combined Work Exception

As an exception to condition that You provide Recipients Access to Source Code, any Source Code files marked by the Licensor as having the “Combined Work Exception,” or any object code exclusively resulting from Source Code files so marked, may be combined with other Software into a “Larger Work.” So long as you comply with the requirements to provide Recipients the applicable Notices and Access to the Source Code provided to You by Licensor, and you provide Recipients access to their User Data and do not limit Recipient’s ability to independently work with their User Data, any other Software in the Larger Work as well as the Larger Work as a whole may be licensed under the terms of your choice.

5. Term and Termination

The term of this License begins when You receive the Work, and continues until terminated for any of the reasons described herein, or until all Licensor’s intellectual property rights in the Software expire, whichever comes first (“Term”). This License cannot be revoked, only terminated for the reasons listed below.

5.1. Effect of Termination

If this License is terminated for any reason, all permissions granted to You under Section 3 by any Licensor automatically terminate. You will immediately cease exercising any permissions granted in this License relative to the Work, including as part of any Modified Work.

5.2. Termination for Non-Compliance; Reinstatement

This License terminates automatically if You fail to comply with any of the conditions in section 4. As a special exception to termination for non-compliance, Your permissions for the Work under this License will automatically be reinstated if You come into compliance with all the conditions in section 2 within sixty (60) days of being notified by Licensor or an intended third party beneficiary of Your noncompliance. You are eligible for reinstatement of permissions for the Work one time only, and only for the sixty days immediately after becoming aware of noncompliance. Loss of permissions granted for the Work under this License due to either a) sustained noncompliance lasting more than sixty days or b) subsequent termination for noncompliance after reinstatement, is permanent, unless rights are specifically restored by Licensor in writing.

5.3 Termination Due to Litigation

If You initiate litigation against Licensor, or any Recipient of the Work, either direct or indirect, asserting that the Work directly or indirectly infringes any patent, then all permissions granted to You by this License shall terminate. In the event of termination due to litigation, all permissions validly granted by You under this License, directly or indirectly, shall survive termination. Administrative review procedures, declaratory judgment actions, counterclaims in response to patent litigation, and enforcement actions against former Licensees terminated under this section do not cause termination due to litigation.

6. Disclaimer of Warranty and Limit on Liability

As far as the law allows, the Work comes AS-IS, without any warranty of any kind, and no Licensor or contributor will be liable to anyone for any damages related to this software or this license, under any kind of legal claim, or for any type of damages, including indirect, special, incidental, or consequential damages of any type arising as a result of this License or the use of the Work including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, loss of profits, revenue, or any and all other commercial damages or losses.

7. Other Provisions

7.1. Affiliates

An “Affiliate” means any other entity that, directly or indirectly through one or more intermediaries, controls, is controlled by, or is under common control with, the Licensee. Employees of a Licensee and natural persons acting as contractors exclusively providing services to Licensee are also Affiliates.

7.2. Choice of Jurisdiction and Governing Law

A Licensor may require that any action or suit by a Licensee relating to a Work provided by Licensor under this License may be brought only in the courts of a particular jurisdiction and under the laws of a particular jurisdiction (excluding its conflict-of-law provisions), if Licensor provides conspicuous notice of the particular jurisdiction to all Licensees.

7.3. No Sublicensing

This License is not sublicensable. Each time You provide the Work or a Modified Work to a Recipient, the Recipient automatically receives a license under the terms described in this License. You may not impose any further reservations, conditions, or other provisions on any Recipients’ exercise of the permissions granted herein.

7.4. Attorneys' Fees

In any action to enforce the terms of this License, or seeking damages relating thereto, including by an intended third party beneficiary, the prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable attorneys' fees and costs incurred in connection with such action, including any appeal of such action. A “prevailing party” is the party that achieves, or avoids, compliance with this License, including through settlement. This section shall survive the termination of this License.

7.5. No Waiver

Any failure by Licensor to enforce any provision of this License will not constitute a present or future waiver of such provision nor limit Licensor’s ability to enforce such provision at a later time.

7.6. Severability

If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any invalid or unenforceable portion will be interpreted to the effect and intent of the original portion. If such a construction is not possible, the invalid or unenforceable portion will be severed from this License but the rest of this License will remain in full force and effect.

7.7. License for the Text of this License

The text of this license is released under the Creative Commons Attribution-ShareAlike 4.0 International License, with the caveat that any modifications of this license may not use the name “Cryptographic Autonomy License” or any name confusingly similar thereto to describe any derived work of this License.

More Repositories

1

holochain

The current, performant & industrial strength version of Holochain on Rust.
Rust
1,170
star
2

holochain-rust

DEPRECATED. The Holochain framework implemented in rust with a redux style internal state-model.
Rust
1,121
star
3

holochain-proto

Holographic storage for distributed applications -- a validating monotonic DHT "backed" by authoritative hashchains for data provenance (a Ceptr sub-project)
Go
878
star
4

launcher-tauri

Desktop launcher to install and use Holochain apps locally
Vue
262
star
5

holochain-client-js

A JavaScript client for the Holochain Conductor API
TypeScript
258
star
6

scaffolding

Scaffolding tool to quickly generate and edit holochain applications
Handlebars
220
star
7

clutter

Fully distributed twitter built on holochain
JavaScript
161
star
8

holonix-archive

NixOS && Holochain
Nix
150
star
9

holochain-ui

UI for composing Holochain experiences. First app is the Abundance of Presence chat & meeting coordination tool. Also includes Persona and Profile Management with Vault.
TypeScript
99
star
10

holochain-client-rust

A Rust client for the Holochain Conductor API
Rust
97
star
11

happ-build-tutorial

Tutorial on how to build hApp DNAs for Holochain RSM
TypeScript
96
star
12

docs-pages

The hosted static files for the Holochain developer documentation
Nunjucks
96
star
13

peer-chat-redux

Instant messaging application running on Holochain-redux in Holoscape [For chat on Holochain rsm see https://github.com/holochain/elemental-chat/]
JavaScript
90
star
14

syn

Generalized Holochain DNA and UI library for building real-time shared state hApps
TypeScript
89
star
15

elemental-chat

A chat DNA for Holochain RSM
TypeScript
81
star
16

apps

Your guide to fnding, installing, and running holochain apps
HTML
71
star
17

deepkey

A Holochain implementation of decentralized public key infrastructure
Rust
68
star
18

CRISPR-Holochain-redux

Electron app for designing and generating Zomes with UI Components
Vue
66
star
19

tx5

Holochain WebRTC P2P Communication Ecosystem
Rust
66
star
20

holoscape

A complete end-user deployment of a Holochain conductor with UI for administration and a run-time for hApp UIs
HTML
63
star
21

holochain-wasmer

Rust
61
star
22

devhub-dnas

DNAs for sharing source code and distributing compiled WASM that comprise Holochain Apps.
Rust
60
star
23

wind-tunnel

Performance testing for Holochain
Rust
60
star
24

hc-utils

A util crate for holochain-rsm
Rust
58
star
25

launcher

Desktop launcher to install and use Holochain apps locally (Electron version)
TypeScript
58
star
26

HoloWorld

Basic Hello World app for Holochain
JavaScript
57
star
27

holochat

Multi-room P2P chat (like a distributed Slack) which runs on holochain
HTML
56
star
28

holochain-nixpkgs

Nix
56
star
29

dpki

Distributed Public Key Infrastructure which runs on holochain
JavaScript
56
star
30

how

Embodment of a Holochain emegent standards process
TypeScript
55
star
31

hc-web-client-redux

RPC WebSocket client for Holochain web UIs
JavaScript
54
star
32

holochain-serialization

Abstractions to probably serialize and deserialize things properly without forgetting or doubling
Rust
49
star
33

website

jekyll website for holochain.org
HTML
48
star
34

n3h

nodejs implementation of holochain networking / p2p backend process
JavaScript
48
star
35

elemental-chat-ui

A Vue.js + Vuetify + Vuex web app for Elemental Chat DNA.
JavaScript
48
star
36

scaffold

Web-based wizard for generating scaffolding for holochain applications.
JavaScript
46
star
37

devhub-gui

A web-based UI that works with Holochain's collection of DevHub DNAs.
JavaScript
45
star
38

lib3h

The lib3h p2p communication rust library.
Rust
44
star
39

hc-zome-lib

This is a pkgs with multiple zomes that can be used in your holochain dna
Rust
43
star
40

lair

secret lair private keystore
Rust
42
star
41

sodoken

Libsodium wrapper providing tokio safe memory secure api access.
Rust
42
star
42

minersweeper

Massively Multiplayer Distributed Minesweeper on Holochain
TypeScript
41
star
43

hdk-assemblyscript

The Holochain Developer Kit for Assemblyscript
JavaScript
41
star
44

holochain-anchors

A core pattern for storing AND FINDING data in a Holochain DHT. Anchors are a predictable hash (by using known content) from which you can attach links
Rust
39
star
45

holochain-blog-theme

The Ghost theme files for blog.holochain.org
CSS
38
star
46

hcSeedBundle

Javascript SeedBundle parsing and generation library.
TypeScript
36
star
47

holochain-cmd

Developer Command Line Tools for Holochain
Rust
36
star
48

holochain-load-test

Load testing for Holochain
Python
35
star
49

influxive

Opinionated tools for working with InfluxDB from Rust
Rust
35
star
50

holochain-client-python

A Python client for the Holochain Conductor API
Python
32
star
51

ghost_actor

GhostActor makes it simple, ergonomic, and idiomatic to implement async / concurrent code using an Actor model.
Rust
32
star
52

holochain-serialization-python

Rust
31
star
53

app-store-dnas

DNAs for Holochain App discovery and download.
Rust
31
star
54

bootstrap2

Holochain bootstrap peer discovery.
Rust
31
star
55

bootstrap

Bootstrap nodes onto a network by allowing existing nodes to list themselves under a URL
TypeScript
30
star
56

tryorama

Toolset to manage Holochain conductors and facilitate test scenarios
TypeScript
30
star
57

hc-spin

CLI to run Holochain Apps in Development Mode
TypeScript
30
star
58

hc-ts-template

Typescript + React + Redux + holochain-proto starter app
JavaScript
29
star
59

integrity-template

establishing patterns for separating integrity zomes from accessor zomes for Holochain apps
Rust
29
star
60

holosqape

Qt and QML based Holochain container app
C++
28
star
61

holochain-serialization-js

A JavaScript Wasm binding of the Holochain serialization and hashing algorithm (JaWaHoSeHa)
JavaScript
28
star
62

hc-tel

holochain telemetry experiment
Rust
27
star
63

benchmarks

sample apps used to establish initial holo fuel pricing
JavaScript
26
star
64

happ-client-call-tutorial

How to call your hApp
Rust
26
star
65

HCHC

The Holochain of Holochains
JavaScript
26
star
66

cointoss

example holochain app for "trustable random initiation"
JavaScript
26
star
67

holochain-nodejs

Test Holochain apps (hApps) within a nodejs container.
Rust
25
star
68

holochain-logging

Rust
25
star
69

identity-manager

DeepKey + Personas & Profiles
TypeScript
25
star
70

portal-dna

A DNA for providing zome function access across networks
Rust
25
star
71

react-graphql-template

JavaScript
24
star
72

app-store-gui

A web-based UI that works with Holochain's collection of App Store DNAs.
JavaScript
24
star
73

web-components

Library of React Web Components for Holochain Apps
JavaScript
24
star
74

mapOnHolochain

23
star
75

dao

Holochain implementation of standard ethereum DAO (Decentralized Autonomous Organization)
JavaScript
23
star
76

hc-spin-rust-utils

Rust node add-ons for hc-spin
JavaScript
23
star
77

hdk-rust

HDK Rust HAS MOVED -> https://github.com/holochain/holochain-rust/tree/develop/hdk-rust
Rust
23
star
78

holodex

Holochain application indexing engine for distributed apps which run on holochains
JavaScript
23
star
79

hc-test-utils

A lib of testing utility crates to support testing with holochain beta releases.
Rust
23
star
80

hc-state-cli-node

JavaScript
22
star
81

soa-toolbox

soa-toolbox is a set of plugins for Miro that give special functionality
JavaScript
22
star
82

hackathon-happs

hApps developed at various hackathons and training events
Rust
22
star
83

personas-profiles-redux

Holochain-redux (deprecated) app for people to manage how other apps access their personal information.
TypeScript
22
star
84

happ-index

"The poor man's hApp store" - short term interim solution until decentralized hApp store running on Holochain is up
21
star
85

holochat-rust

An extremely simple and small P2P chat app, with chat rooms
HTML
20
star
86

tasktaskic

an example app for holochain-rust 0.0.1 developer preview
Rust
20
star
87

hc-siderun

Helper utility for initializing a cluster of holochain nodes all connecting to a local bootstrap server (and thus, to each other)
Shell
20
star
88

holochain-persistence

Abstractions for saving and retrieving data locally
Rust
20
star
89

dev-camp-tests-rust

A test-driven development way to learn Holochain!
JavaScript
20
star
90

holochain-forum-theme

The Discourse theme for forum.holochain.org
20
star
91

hcrs

nodejs scaffold generation for holochain-rust
JavaScript
20
star
92

tx3

tx3 p2p communications
Rust
19
star
93

hc-rtc-demo

Holochain webrtc PoC / demo application
19
star
94

docs-pages-redux

Developer docs for Holochain Redux (legacy)
HTML
19
star
95

vue-cli-preset-holochain

Preset for creating Vue, Vuetify, Vuex, dexie Holochain apps.
19
star
96

dna-to-openapi

given holochain dna, generate a swagger / openapi spec file
JavaScript
18
star
97

core-concepts-examples-redux

A selection of example projects to illustrate the core concepts of Holochain
Rust
18
star
98

app-spec-rust

App Spec Rust HAS MOVED into holochain-rust repository!
Rust
18
star
99

vue-cli-plugin-holochain

Vue plugin that sets up a complete Vue + Vuetify + Vuex + Dexie + Holochain app
Vue
18
star
100

hc-rtc-sig

holochain webrtc signal server / client
18
star