Cargo
The following metadata fields can be extracted from a cargo.toml file.
These fields are defined in the Cargo.toml specification, and are mapped according to the CodeMeta crosswalk for cargo.toml.
| Software metadata category | SOMEF metadata JSON path | CARGO.TOML metadata file field |
|---|---|---|
| authors - value | authors[i].result.value | package.authors |
| authors - name | authors[i].result.name | package.authors (1) |
| authors - email | authors[i].result.email | package.authors (2) |
| code_repository | code_repository[i].result.value | package.repository |
| description | description[i].result.value | package.description |
| has_package_file | has_package_file[i].result.value | URL of the cargo.toml file |
| keywords | keywords[i].result.value | package.keywords |
| license - value | license[i].result.value | package.license |
| license - spdx id | license[i].result.spdx_id | package.license (3) |
| license - name | license[i].result.name | package.license (4) |
| package_id | package_id[i].result.value | package.name |
| requirements - value | requirements[i].result.value | target.dependencies or depencencies name = version |
| requirements - name | requirements[i].result.name | target.dependencies or depencencies name |
| requirements - version | requirements[i].result.version | target.dependencies or depencencies version |
| requirements - development type | requirements[i].result.development_type | target.dependencies or dependencies (version, git, path, other) |
| version - value | version[i].result.value | package.version |
| version - tag | version[i].result.tag | package.version |
(1)
- Regex: re.search(r'<([^>]+)>', author_str)--> look in package.authors, them from init until email init.
- Example: authors = ["rustdesk <info@rustdesk.com>"]
- Result: rustdesk
(2)
- Regex: re.search(r'<([^>]+)>', author_str)--> look in package.authors
- Example: authors = ["rustdesk <info@rustdesk.com>"]
- Result: info@rustdesk.com
(3), (4)
- Look for expressions in a local dictionary with all the reference and spdx_id
- Example: license = "Apache-2.0"
- Result spdx_id: Apache-2.0
- Result name: Apache License 2.0