Skip to content
This repository has been archived by the owner on Mar 11, 2024. It is now read-only.

Create the top-level project library #152

Open
mikelodder7 opened this issue Oct 5, 2020 · 1 comment
Open

Create the top-level project library #152

mikelodder7 opened this issue Oct 5, 2020 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@mikelodder7
Copy link
Contributor

The top-level Ursa project file and folder structure will look like the following:

ursa
|
ursa_circuits
ursa_core
ursa_encryption
ursa_dkg
ursa_keyagreement
ursa_sharing
ursa_shortgroupsignatures
ursa_signatures

...
src
Cargo.toml
Cargo.lock
CHANGELOG
CODEOWNERS
CONTRIBUTING
LICENSE
README.md
RELEASES.md
SECURITY.md
rustfmt.toml
...

The point of the top level project is to

  1. Provide a single crate for developers that reexports or wraps subprojects
  2. Provide a common place for APIs to be named and defined for Rust, FFI and WASM

The current Cargo.toml file only contains the following:

[profile.release]
lto = true

[workspace]
members = [
  "libursa",
  "libzmix",
  "libzmix/bulletproofs_amcl",
  "libzmix/bbs",
]

This will need to be modified to accomadate the new subprojects as they are created. Some hints for how the end result could look like are the rand crate where it has multiple subprojects and itself is a crate.

@mikelodder7 mikelodder7 added the enhancement New feature or request label Oct 5, 2020
@mikelodder7 mikelodder7 mentioned this issue Oct 5, 2020
15 tasks
@mikelodder7 mikelodder7 mentioned this issue Nov 6, 2020
@arsulegai
Copy link

I was curious to pick up the hyperledger-archives/ursa-wrapper-go#8 issue. But the go wrapper requires workspace package feature to be enabled. The default build does not include ffi wrappers in it. Rust stable release currently does not have an option to enable package features.

Here's what I did (ref: https://github.com/arsulegai/ursa/tree/fix-path)
Step 1: Introduce a feature similar to ursa_sharing to enable cl_native and create the required .so file.
Step 2: Step 1 ends up in the conflict that the same name ursa is in both Cargo.toml and libursa/Cargo.toml.

I was planning to rename the Cargo.toml's name from usa to hyperledger-ursa. Any suggestions/preferences?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Development

No branches or pull requests

3 participants