Dotnist.Client
1.2.0
dotnet add package Dotnist.Client --version 1.2.0
NuGet\Install-Package Dotnist.Client -Version 1.2.0
<PackageReference Include="Dotnist.Client" Version="1.2.0" />
<PackageVersion Include="Dotnist.Client" Version="1.2.0" />
<PackageReference Include="Dotnist.Client" />
paket add Dotnist.Client --version 1.2.0
#r "nuget: Dotnist.Client, 1.2.0"
#:package Dotnist.Client@1.2.0
#addin nuget:?package=Dotnist.Client&version=1.2.0
#tool nuget:?package=Dotnist.Client&version=1.2.0
Dotnist
Like deNIST except dotnet. Intended to help identify NIST files in ediscovery processing. Maintained by Elemental Discovery.
NIST List
The underlying NIST list comes from the National Software Reference Library and is formally known as the Reference Data Set.
Components
This project consists of a variety of components:
- The
Dotnistlibrary, which does lookups against a provided sqlite database. - The
Dotnist.GrpcgRPC server, which is bundled into thedotnist-grpccontainer image (db included). - The
Dotnist.Clientclient library, which is just a package that directly provides the generated gRPC client library. You could alternately copy thedotnist.protofile directly, which is what you would need to do for other languages.
Dotnist and Dotnist.Client are available as NuGet packages. The dotnist-grpc container is available both on Docker Hub and in this repository's Github Container Registry.
Usage
For usage, look at the tests and the dotnist.proto file.
RDS Database
The 'minimal' modern RDS database is comically large at >170 GB after extraction, so we have a manual workflow to shrink the database into just a single package reference for each unique Sha256 hash, discarding the filename and other hash types from the database as well. The library is designed to work with both a full database and the flattened database, but the Docker container bundles this handmade flattened database.
Versions
| Version | RDS Release |
|---|---|
| 1.0.x | 2025-06-01 |
| 1.1.x | 2025-09-01 |
| 1.2.x | 2025-12-01 |
Quarterly Updates
In order to apply the quarterly RDS patches:
- Download the NSRL provided .sql patch for the modern minimal dataset.
- Use
update-database.shto apply the patch to a complete (non-flattened) sqlite database. - Use
flatten-sqlite.shto generate a flattened database. - Use
build-db-image.shto bundle the new flattened database and push it to GHCR.
After that the build process that runs in Github Actions will be able to use the updated .db file.
TODO
Some hypothetical improvements that aren't worth the time at the moment:
- Running tests in CI is a hassle since you need the database, one option would be to run the tests in a docker container.
- A version of this that works against a NIST list stored in a regular hosted database.
- I didn't bother to configure the image builds to run during pull requests, like you would normally want in a development workflow.
If anyone else finds this library useful definitely feel free to reach out! I'd be curious about what you are working on.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- Google.Protobuf (>= 3.25.3)
- Grpc.Net.Client (>= 2.64.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.2.0 | 65 | 1/28/2026 |
| 1.2.0-pull-9-merge.2 | 26 | 1/28/2026 |
| 1.1.3-pull-9-merge.2 | 29 | 1/28/2026 |
| 1.1.2 | 391 | 11/19/2025 |
| 1.1.1 | 189 | 10/30/2025 |
| 1.1.1-pull-8-merge.2 | 133 | 10/30/2025 |
| 1.1.0 | 177 | 10/30/2025 |
| 1.0.8-pull-7-merge.2 | 141 | 10/30/2025 |
| 1.0.7 | 188 | 8/8/2025 |
| 1.0.7-pull-6-merge.3 | 135 | 8/8/2025 |
| 1.0.6 | 151 | 7/13/2025 |
| 1.0.6-pull-5-merge.2 | 91 | 7/13/2025 |
| 1.0.5 | 103 | 7/11/2025 |
| 1.0.4 | 119 | 7/11/2025 |
| 1.0.3 | 128 | 7/11/2025 |
| 1.0.3-pull-4-merge.2 | 83 | 7/11/2025 |
| 1.0.2 | 173 | 7/10/2025 |
| 1.0.2-pull-3-merge.2 | 134 | 7/10/2025 |
| 1.0.1 | 172 | 7/10/2025 |
| 1.0.1-pull-2-merge.3 | 129 | 7/10/2025 |