/Maskbook

Make Privacy Protected Again. ([I:b])

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

([I:b])

Maskbook · GitHub license Circle CI Join the chat at https://gitter.im/Maskbook/community Chrome Web Store Mozilla Add-on

Encrypt your posts & chats on You-Know-Where. Allow only your friends to decrypt.

For general introductions, see Maskbook.com.

/_ I thought what I'd do was, I'd pretend I was one of those deaf-mutes. _/

Downloads

Useful Links

Donation

Help us by donating us by:

  • Bitcoin: 3PRrXj1HTXDc4j9SCQZ6hovpa74iimqtgX
  • Ethereum: 0xD71c7150962fd484a4291a193c85426Df9EaABbB

Documentation for developers

Install dependencies

  • yarn install

Build and developing

  • yarn start:firefox runs extension in a new firefox session.
  • yarn start:android runs extension in a usb connected android device.
  • yarn start runs extension in other browsers, manually loading required. This plugin may help you to reload extension quicker.
  • yarn storybook to start StoryBook. Used for UI only developing.
  • yarn build build a production version. Output files in ./build/

Conditional compilation

  • If branch name contains full, CI will build for all targets
  • If branch name contains ios, CI will build for target iOS
  • If branch name contains android or gecko, CI will build for target firefox gecko
  • For any other branches, CI will build for target base chromium firefox

Non-famous libraries we are using

  • @holoflows/kit - A toolkit for extension developing
  • anchorme - Use it to detect links in the text
  • construct-style-sheets-polyfill - A polyfill for a web api
  • elliptic - A crypto library, we use it to encrypt and decrypt
  • gun - A decentralized graph database we use it to sync user's shared crypto key
  • pvtsutils and tiny-secp256k1 - A crypto library, we use it to zip and unzip SECP256k1 keys but not using it to encrypt/decrypt
  • webcrypto-liner - A wrapper library, it wrap elliptic into WebCrypto API

Folder Structure

  • ./public - Resource file
  • ./src/components - UI Components
  • ./src/crypto - Crypto related (Note, in "alpha" version, the bigger number means the older version, our first payload version is alpha-42, and the latest version in July 1 2019 is alpha-40)
  • ./src/database - How we store data.
    • ./type.ts - Type definition for Identifier (used everywhere!)
    • ./{avatar,group,people,post}.ts - How we store these data in database
    • ./helpers - Helper methods for Services to use database easier
    • ./migrate - Migrate old database to new one.
  • ./src/utils - Utils
    • ./components - Some general React Components
    • ./hooks - Some general React hooks
    • ./jss - (this folder is MIT Licensed) Custom Renderer that let JSS render styles into ShadowRoot
    • ./type-transform - Transform data types between each other
  • ./src/extension
    • ./background-script - Scripts that running in the background page as a service
    • ./content-script - Script that be injected into the web page
    • ./injected-script - Script that will run in the main frame of the injected web page
  • ./tests - Some tests for Crypto algorithms
  • ./stories - Folder for StoryBook
  • ./protocols - Some standard definitions of protocols that used in Maskbook
  • ./network - How does Maskbook exchange information between users
  • ./social-network/ - Maskbook's multiple network support
  • ./social-network-provider/ - Maskbook's multiple network support