Giter Site home page Giter Site logo

tools-golang's Introduction

Build Status Coverage Status

tools-golang

tools-golang is a collection of Go packages intended to make it easier for Go programs to work with SPDX® files.

This software is in an early state, and its API may change significantly.

What it does

tools-golang currently works with files conformant to versions 2.1 and 2.2 of the SPDX specification, available at: https://spdx.org/specifications

tools-golang provides the following packages:

  • spdx - in-memory data model for the sections of an SPDX document
  • tvloader - tag-value file loader
  • tvsaver - tag-value file saver
  • rdfloader - RDF file loader
  • builder - builds "empty" SPDX document (with hashes) for directory contents
  • idsearcher - searches for SPDX short-form IDs and builds SPDX document
  • licensediff - compares concluded licenses between files in two packages
  • reporter - generates basic license count report from SPDX document
  • utils - various utility functions that support the other tools-golang packages

Examples for how to use these packages can be found in the examples/ directory.

RDF support was added by @RishabhBhatnagar as part of his Google Summer of Code 2020 project, and is in the process of being merged into the main tools-golang code.

What it doesn't do

tools-golang doesn't currently do any of the following:

  • work with files under any version of the SPDX spec prior to v2.1
  • convert between different versions of SPDX documents (e.g., from 2.1 to 2.2)
  • enable applications to interact with SPDX files without needing to care (too much) about the particular SPDX file version

We are working towards adding functionality for all of these. Code contributions are welcome!

Requirements

At present, tools-golang does not require anything outside the Go standard library.

Licenses

As indicated in LICENSE-code.txt, tools-golang source code files are provided and may be used, at your option, under either:

  • Apache License, version 2.0 (Apache-2.0), OR
  • GNU General Public License, version 2.0 or later (GPL-2.0-or-later).

As indicated in LICENSE-docs.txt, tools-golang documentation files are provided and may be used under the Creative Commons Attribution 4.0 International license (CC-BY-4.0).

This README.md file is documentation:

SPDX-License-Identifier: CC-BY-4.0

tools-golang's People

Contributors

abhishekspeer avatar rishabhbhatnagar avatar swinslow avatar

Watchers

 avatar

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.