Skip to content
This repository has been archived by the owner on Oct 3, 2022. It is now read-only.

Rewrite in Rust #8

Open
11 tasks
bakape opened this issue Jul 29, 2019 · 0 comments
Open
11 tasks

Rewrite in Rust #8

bakape opened this issue Jul 29, 2019 · 0 comments
Labels
enhancement New feature or request

Comments

@bakape
Copy link
Owner

bakape commented Jul 29, 2019

  • Rewrite using Rust stdlib
  • Leave thread/async management to the caller. The lib only acts as persistent linker layer.
  • Provide C bindings and header file
    • Pass errors as void* to allow casting between language-idiomatic error types
  • Rust implementation should take any generic parameter implementing Hash as a Frontend Key
  • C bindings should only allow keys fixed format. Bindings should (en-)/(de-)code keys to/from this format .
  struct RecacheBufferKey 
  {
    size_t size;
    uint8_t *data;
  };
  • Write Go bindings
    • Go bindings should use zero copy unsafe casts for buffers
    • Marshal and unmarshal keys using encoding/gob
      • Reuse the encoder on the frontend
  • Compile optimized binaries for all supported architectures and distribute them with the project
@bakape bakape added the enhancement New feature or request label Jul 29, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant