From ac148c3f439be19d0d9b100fc43739e87c0fb98c Mon Sep 17 00:00:00 2001 From: Tom Tonic Date: Sun, 22 Sep 2024 08:02:02 +0200 Subject: [PATCH 1/2] added OSSF scorecard info --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 42c3d72..ab52ef7 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ [![Tests](https://github.com/TomTonic/Set3/actions/workflows/coverage.yml/badge.svg?branch=main)](https://github.com/TomTonic/Set3/actions/workflows/coverage.yml) ![coverage](https://raw.githubusercontent.com/TomTonic/Set3/badges/.badges/main/coverage.svg) [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/9470/badge)](https://www.bestpractices.dev/projects/9470) +[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/TomTonic/Set3/badge)](https://scorecard.dev/viewer/?uri=github.com/TomTonic/Set3) Set3 is a fast and pure set implmentation in and for Golang. I wrote it as an alternative to set implementations based on `map[type]struct{}`. Set3 is 10%-20% faster and uses 40% less memory than `map[type]struct{}`. As hash function, Set3 uses the built-in hash function of Golang via [dolthub/maphash](https://github.com/dolthub/maphash). From c00c446fe03c85f726beef022a1a8b96d56a333d Mon Sep 17 00:00:00 2001 From: Tom Tonic Date: Sun, 22 Sep 2024 08:20:56 +0200 Subject: [PATCH 2/2] added instructions on how to obtain the package --- README.md | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ab52ef7..f5883e7 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,27 @@ The code is derived from [SwissMap](https://github.com/dolthub/swiss) and it imp The name "Set3" comes from the fact that this was the 3rd attempt for an optimized datastructure/code-layout to get the best runtime performance. -## Usage - -The following test case creates two sets and demonstrates some operations. For a full list of operations on the Set3 type, see [API doc](https://pkg.go.dev/github.com/TomTonic/Set3#Set3). +## Installation + +To use the `Set3` package in your Go project, follow these steps: + +1. **Initialize a Go module** (if you haven't already): + ```sh + go mod init your-module-name + ``` +2. **Add the package**: Simply import the package in your Go code, and Go modules will handle the rest: + ```go + import "github.com/TomTonic/Set3" + ``` +3. **Download dependencies**: Run the following command to download the dependencies: + ```sh + go mod tidy + ``` + This will automatically download and install the Set3 package along with any other dependencies. + +## Using Set3 + +The following test case creates two sets and demonstrates some operations. For a full list of operations on the `Set3` type, see [API doc](https://pkg.go.dev/github.com/TomTonic/Set3#Set3). ```go func TestExample(t *testing.T) {