rdedup | Data deduplication engine , supporting optional compression | Continuous Backup library

 by   dpc Rust Version: v3.2.1 License: No License

kandi X-RAY | rdedup Summary

kandi X-RAY | rdedup Summary

rdedup is a Rust library typically used in Backup Recovery, Continuous Backup applications. rdedup has no bugs, it has no vulnerabilities and it has medium support. You can download it from GitHub.

rdedup is a data deduplication engine and a backup software. See current project status and original use case description wiki pages. rdedup is generally similar to existing software like duplicacy, restic, attic, duplicity, zbackup, etc., with a skew towards asymmetric encryption and synchronization friendly data model. Thanks to Rust and solid architecture, rdedup is also exteremely performant and very reliable (no data-loss bugs ever reported). rdedup is written in Rust and provides both command line tool and library API (rdedup-lib). The library can be used to embed the core engine into other applications, or building custom frontends and tools.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              rdedup has a medium active ecosystem.
              It has 780 star(s) with 44 fork(s). There are 28 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 45 open issues and 88 have been closed. On average issues are closed in 85 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of rdedup is v3.2.1

            kandi-Quality Quality

              rdedup has 0 bugs and 0 code smells.

            kandi-Security Security

              rdedup has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              rdedup code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              rdedup does not have a standard license declared.
              Check the repository for any license declaration and review the terms closely.
              OutlinedDot
              Without a license, all rights are reserved, and you cannot use the library in your applications.

            kandi-Reuse Reuse

              rdedup releases are not available. You will need to build from source code and install.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of rdedup
            Get all kandi verified functions for this library.

            rdedup Key Features

            No Key Features are available at this moment for rdedup.

            rdedup Examples and Code Snippets

            No Code Snippets are available at this moment for rdedup.

            Community Discussions

            QUESTION

            How to parallely `map(...)` on a custom, single-threaded iterator in Rust?
            Asked 2017-Feb-27 at 09:38

            I have a MyReader that implements Iterator and produces Buffers where Buffer : Send. MyReader produces a lot of Buffers very quickly, but I have a CPU-intensive job to perform on each Buffer (.map(|buf| ...)) that is my bottleneck, and then gather the results (ordered). I want to parallelize the CPU intense work - hopefully to N threads, that would use work stealing to perform them as fast as the number of cores allows.

            Edit: To be more precise. I am working on rdedup. MyStruct is Chunker which reads io::Read (typically stdio), finds parts (chunks) of data and yields them. Then map() is supposed, for each chunk, to calculate sha256 digest of it, compress, encrypt, save and return the digest as the result of map(...). Digest of saved data is used to build index of the data. The order between chunks being processed by map(...) does not matter, but digest returned from each map(...) needs to be collected in the same order that the chunks were found. The actual save to file step is offloaded to yet another thread (writter thread). actual code of PR in question

            I hoped I can use rayon for this, but rayon expect an iterator that is already parallizable - eg. a Vec<...> or something like that. I have found no way to get a par_iter from MyReader - my reader is very single-threaded in nature.

            There is simple_parallel but documentation says it's not recommended for general use. And I want to make sure everything will just work.

            I could just take a spmc queue implementation and a custom thread_pool, but I was hopping for an existing solution that is optimized and tested.

            There's also pipeliner but doesn't support ordered map yet.

            ...

            ANSWER

            Answered 2017-Feb-27 at 09:38

            In general, preserving order is a pretty tough requirement as far as parallelization goes.

            You could try to hand-make it with a typical fan-out/fan-in setup:

            • a single producer which tags inputs with a sequential monotonically increasing ID,
            • a thread pool which consumes from this producer and then sends the result toward the final consumer,
            • a consumer who buffers and reorders result so as to treat them in the sequential order.

            Or you could raise the level of abstraction.

            Of specific interest here: Future.

            A Future represents the result of a computation, which may or may not have happened yet. A consumer receiving an ordered list of Future can simply wait on each one, and let buffering occur naturally in the queue.

            For bonus points, if you use a fixed size queue, you automatically get back-pressure on the consumer.

            And therefore I would recommend building something of CpuPool.

            The setup is going to be:

            Source https://stackoverflow.com/questions/42476389

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install rdedup

            If you have cargo installed:. If not, I highly recommend installing rustup (think pip, npm but for Rust).

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/dpc/rdedup.git

          • CLI

            gh repo clone dpc/rdedup

          • sshUrl

            git@github.com:dpc/rdedup.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Continuous Backup Libraries

            restic

            by restic

            borg

            by borgbackup

            duplicati

            by duplicati

            manifest

            by phar-io

            velero

            by vmware-tanzu

            Try Top Libraries by dpc

            mioco.pre-0.9

            by dpcRust

            breeze

            by dpcRust

            mioco

            by dpcRust

            rhex

            by dpcRust

            pariter

            by dpcRust