Giter Club home page Giter Club logo

dejavu's Introduction

DejaVu

δΈ­ζ–‡

πŸ’‘ Introduction

DejaVu is the component of data snapshot and sync for SiYuan.

✨ Features

  • Git-like version control
  • File deduplication in chunks
  • Data compression
  • AES Encrypted
  • Cloud sync and backup
  • Load assets on demand

⚠️ Attention

  • Folders are not supported
  • Permission attributes are not supported
  • Symbolic links are not supported

🎨 Design

Design reference from ArtiVC.

Entity

  • ID Each entity is identified by SHA-1
  • Index file list, each index operation generates a new index
    • parent points to the previous index
    • memo index memo
    • created index time
    • files file list
    • count count of total files
    • size size of total files
  • File file, a new file is generated when the actual data file path or content changes
    • path file path
    • size file size
    • updated last update time
    • chunks file chunk list
  • Chunk file chunk
    • data actual data
  • Ref refers to the index
    • latest built-in reference, automatically points to the latest index
    • tag tag reference, manually point to the specified index
  • Repo repository

Repo

  • DataPath data folder path, the folder where the actual data file is located
  • Path repo folder path, the repo is not stored in the data folder, we need to specify the repo folder path separately

The repo folder layout is as follows:

β”œβ”€indexes
β”‚      0531732dca85404e716abd6bb896319a41fa372b
β”‚      19fc2c2e5317b86f9e048f8d8da2e4ed8300d8af
β”‚      5f32d78d69e314beee36ad7de302b984da47ddd2
β”‚      cbd254ca246498978d4f47e535bac87ad7640fe6
β”‚
β”œβ”€objects
β”‚  β”œβ”€1e
β”‚  β”‚      0ac5f319f5f24b3fe5bf63639e8dbc31a52e3b
β”‚  β”‚
β”‚  β”œβ”€56
β”‚  β”‚      322ccdb61feab7f2f76f5eb82006bd51da7348
β”‚  β”‚
β”‚  β”œβ”€7e
β”‚  β”‚      dccca8340ebe149b10660a079f34a20f35c4d4
β”‚  β”‚
β”‚  β”œβ”€83
β”‚  β”‚      a7d72fe9a071b696fc81a3dc041cf36cbde802
β”‚  β”‚
β”‚  β”œβ”€85
β”‚  β”‚      26b9a7efde615b67b4666ae509f9fbc91d370b
β”‚  β”‚
β”‚  β”œβ”€87
β”‚  β”‚      1355acd062116d1713e8f7f55969dbb507a040
β”‚  β”‚
β”‚  β”œβ”€96
β”‚  β”‚      46ba13a4e8eabeca4f5259bfd7da41d368a1a6
β”‚  β”‚
β”‚  β”œβ”€a5
β”‚  β”‚      5b8e6b9ccad3fc9b792d3d453a0793f8635b9f
β”‚  β”‚      b28787922f4e2a477b4f027e132aa7e35253d4
β”‚  β”‚
β”‚  β”œβ”€be
β”‚  β”‚      c7a729d1b5f021f8eca0dd8b6ef689ad753567
β”‚  β”‚
β”‚  β”œβ”€d1
β”‚  β”‚      324c714bde18442b5629a84a361b5e7528b14a
β”‚  β”‚
β”‚  β”œβ”€f1
β”‚  β”‚      d7229171f4fa1c5eacb411995b16938a04f7f6
β”‚  β”‚
β”‚  └─f7
β”‚          ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0
β”‚
└─refs
    β”‚  latest
    β”‚
    └─tags
            v1.0.0
            v1.0.1

πŸ“„ License

DejaVu uses the GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 open source license.

πŸ™ Acknowledgement

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.