{"id":19657871,"url":"https://github.com/gdatasoftwareag/vaas","last_synced_at":"2026-02-27T15:16:58.607Z","repository":{"id":37750706,"uuid":"454441165","full_name":"GDATASoftwareAG/vaas","owner":"GDATASoftwareAG","description":"Verdict-as-a-Service SDKs: Analyze files for malicious content","archived":false,"fork":false,"pushed_at":"2026-02-18T09:15:28.000Z","size":58352,"stargazers_count":38,"open_issues_count":10,"forks_count":10,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-02-18T22:37:26.797Z","etag":null,"topics":["antivirus","g-data","it-security","malware","malware-analysis","malware-detection","security"],"latest_commit_sha":null,"homepage":"https://www.gdata.de/business/security-services/verdict-as-a-service","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GDATASoftwareAG.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-02-01T15:28:14.000Z","updated_at":"2026-02-03T07:49:43.000Z","dependencies_parsed_at":"2023-09-26T11:24:51.350Z","dependency_job_id":"82e51f39-a5e9-43c4-a86a-ff67f8d32c8d","html_url":"https://github.com/GDATASoftwareAG/vaas","commit_stats":{"total_commits":485,"total_committers":26,"mean_commits":"18.653846153846153","dds":0.7876288659793814,"last_synced_commit":"5c945d9157ebd6ecb0f979c40912bbcec87a1d2d"},"previous_names":[],"tags_count":500,"template":false,"template_full_name":null,"purl":"pkg:github/GDATASoftwareAG/vaas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GDATASoftwareAG%2Fvaas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GDATASoftwareAG%2Fvaas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GDATASoftwareAG%2Fvaas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GDATASoftwareAG%2Fvaas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GDATASoftwareAG","download_url":"https://codeload.github.com/GDATASoftwareAG/vaas/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GDATASoftwareAG%2Fvaas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29747980,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T07:44:07.782Z","status":"ssl_error","status_checked_at":"2026-02-23T07:44:07.432Z","response_time":90,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["antivirus","g-data","it-security","malware","malware-analysis","malware-detection","security"],"created_at":"2024-11-11T15:34:17.400Z","updated_at":"2026-02-27T15:16:58.599Z","avatar_url":"https://github.com/GDATASoftwareAG.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![vaas-dotnet-ci](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-dotnet.yaml/badge.svg)](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-dotnet.yaml)\n[![vaas-java-ci](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-java.yaml/badge.svg)](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-java.yaml)\n[![vaas-python-ci](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-python.yaml/badge.svg)](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-python.yaml)\n[![vaas-php-ci](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-php.yaml/badge.svg)](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-php.yaml)\n[![vaas-golang-ci](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-golang.yaml/badge.svg)](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-golang.yaml)\n[![vaas-rust-ci](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-rust.yaml/badge.svg)](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-rust.yaml)\n\n# Verdict-as-a-Service\n\n\u003cimg align=\"right\" src=\"assets/G_DATA_VAAS_Logo_R.png\" alt=\"G DATA VaaS logo\" style=\"width:40%\"\u003e\n\n*Verdict-as-a-Service* (VaaS) is a cloud service that provides capabilities to scan files for malware and other threats. It allows you to easily integrate malware detection in your application with a few lines of code. You can use VaaS to secure any scenario where a file is exchanged or stored, such as:\n\n- Upload forms with file submissions\n- Collaboration software like MS Teams, Nextcloud or Slack\n- Backup and distributed file storage like Dropbox or OneDrive\n\nWith minimal effort, you can check a file, URL or hashsum for malicious content. No local installation of any anti-malware product is necessary. VaaS works out of the box, by providing detections from the G DATA cloud. Hosting VaaS on your own Kubernetes cluster, is an option as well.\n\nThis repository contains Software Development Kits (SDKs) for VaaS in several programming languages. The SDKs allow you to easily integrate VaaS into your software. Some examples are below:\n\n## Examples\n\n### C#\n\n```c#\n// Setup\nvar authenticator = new ResourceOwnerPasswordGrantAuthenticator(\"vaas-customer\", userName, password, tokenUrl);\nvar vaas = VaasFactory.Create(authenticator);\n\n// Scan a file...\nvar verdict = await vaas.ForFileAsync(file, CancellationToken.None);\n// or a URL...\nvar verdict = await vaas.ForUrlAsync(uri, CancellationToken.None);\n// or just a SHA256 hash\nvar verdict = await vaas.ForSha256Async(new ChecksumSha256(\"275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f\"), CancellationToken.None);\n```\n\nFull C# examples can be found in [dotnet examples](dotnet/examples/VaasExample).\n\n### Java\n\n```java\n// Setup\nvar authenticator = new ResourceOwnerPasswordGrantAuthenticator(\"vaas-customer\", userName, password, new URI(tokenUrl));\nvar config = new VaasConfig(new URI(env.vaasUrl));\nvar vaas = new Vaas(config, authenticator);\n\n// Scan a file...\nvar verdict = vaas.forFile(file);\n// or a URL...\nvar verdict = vaas.forUrl(url);\n// or just a a SHA256 hash\nvar verdict = vaas.forSha256(new Sha256(\"275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f\"));\n```\n\nFull Java examples can be found in [java examples](java/examples/VaasExample/).\n\n### More languages\nSee below for a list of supported languages and examples.\n\n## How to get started with VaaS\nIf you are interested in trying out VaaS, please check out [our website](https://www.gdatasoftware.com/business/security-services/verdict-as-a-service) ([German version](https://www.gdata.de/business/security-services/verdict-as-a-service)).\n\nWe provide free trial accounts for evaluation purposes with our cloud version of VaaS. You can [sign up here](https://www.gdata.de/vaas-files/vaas-technical-onboarding.html) with a free trial account. You can then use the created credentials with any SDK in combination with our test environment:\n\n* **Authenticator**: ResourceOwnerPasswordGrant\n* **Client ID**: vaas-customer\n* **Username**: Your registered *email* address\n* **Password**: Your password\n* **Token/Authenticator URL**: https://account-staging.gdata.de/realms/vaas-staging/protocol/openid-connect/token\n* **VaaS URL**: https://gateway.staging.vaas.gdatasecurity.de (for SDKs which still use the Websocket API, use wss://gateway.staging.vaas.gdatasecurity.de instead)\n\nFor production use of VaaS, please [contact us](https://www.gdata.de/help-en/vaas/contact/) to discuss your needs and explore how VaaS can best fit your organization. VaaS is available both as a cloud version and on-premise.\n\n## VaaS Documentation\nWe provide an [online documentation](https://www.gdata.de/help-en/vaas/) for VaaS. The documentation includes setup examples, product descriptions and several guides to help you set things up.\n\n## SDKs\nWe provide SDKs for various programming languages to make it easy for you to integrate VaaS in your application. You can find the source code, examples, and documentation for each SDK in the corresponding repository. Currently, we support the following languages:\n\n|Language|Source Code|Examples|Documentation|Repository|\n|--------|-----------|--------|-------------|----------|\n|Rust|[Rust SDK](rust/)|[Examples](rust/examples)| [docs.rs](https://docs.rs/vaas/latest/vaas/)|[crates.io](https://crates.io/crates/vaas)|\n|Java|[Java SDK](java/)|[Examples](java/examples)| [Readme](java/Readme.md) | [maven central](https://mvnrepository.com/artifact/de.gdata/vaas)|\n|PHP|[PHP SDK](php/)|[Examples](php/examples)||[packagist](https://packagist.org/packages/gdata/vaas)|\n|TypeScript(DEPRECATED)|[TypeScript SDK](typescript/)|[Examples](typescript/examples)|[Readme](typescript/Readme.md)|[npmjs](https://www.npmjs.com/package/gdata-vaas)\n|Python|[Python SDK](python/)|[Examples](python/examples)|[Readme](python/README.md)|[pypi](https://pypi.org/project/gdata-vaas/)|\n|.NET|[.NET SDK](dotnet/)|[Examples](dotnet/examples)||[nuget.org](https://www.nuget.org/packages/GDataCyberDefense.Vaas)|\n|Ruby (DEPRECATED)|[Ruby SDK](ruby/)|[Examples](ruby/examples)|[Readme](ruby/README.md)|[rubygems](https://rubygems.org/gems/vaas)|\n|Go|[Go SDK](golang/vaas/v3)|[Examples](golang/vaas/v3/examples)|[Readme](golang/vaas/v3/README.md)|[Github](https://github.com/GDATASoftwareAG/vaas/tree/main/golang/vaas/v3)|\n|C++|[C++ SDK](./cpp/)||[Readme](cpp/README.md)||\n\nThe following table shows the functionality supported by each SDK:\n\n|Functionality|Rust|Java|PHP|TypeScript|.NET|Python|Ruby (DEPRECATED)|Golang|C++|\n|---|---|---|---|---|---|---|---|---|---|\n|Use HTTP API|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#10060;|\u0026#9989;|\u0026#9989;|\u0026#10060;|\u0026#9989;|\u0026#9989;|\n|Check SHA256|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\n|Check File|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\n|Check URL|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#10060;|\n|Check Stream|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#9989;|\u0026#10060;|\u0026#9989;|\u0026#9989;|\n||\n\n\n## Integration Ideas for Malware Detection trough VaaS\nYou can use VaaS to create various applications that scan for malicious content with a few lines of code. Here are some examples:\n\n- [WordPress Plugin](https://wordpress.org/plugins/gdata-antivirus/) to scan for malware in uploaded files\n- [Nextcloud App](https://apps.nextcloud.com/apps/gdatavaas) to scan files in your Nextcloud instance\n\n## Build \u0026 Test\n\nThe easiest way to build and test the SDKs is with the [Nix Package Manager](https://nixos.org/download/#download-nix) and the provided [Just](https://github.com/casey/just) file. Nix will take care of all dependencies and Just provides a simple interface to run the most common tasks.\n\nTo build and test the SDKs, run the following command:\n\n```bash\n# switch into a development shell with all dependencies installed.\n# This will not alter your system, but provide a shell with all necessary tools.\nnix develop\n\n# Now use the Just tool to run the most common tasks\njust -l # list all available tasks\n\n# Just Examples\n# Run the tests for the Rust SDK\njust test-rust\n```\n\nThere are `test-*`, `build-*`, `clean-*` and `release-*` tasks for each SDK, with the exception of Python and PHP, where no build task is available. You can also run the tests for all SDKs with `just test-all`. A `build-all` and `clean-all` task is available as well.\n\nThe `release-*` task triggers a Github Action to build and release a new version of the specified SDK. It needs a version number as an argument, which is used to tag the release. The version number should follow the [Semantic Versioning](https://semver.org/) scheme.\n\n```bash\n# Example: Release the Rust SDK with version 0.1.0\njust release-rust 0.1.0\n```\n\nAs the SDKs need credentials to authenticate to the VaaS API. You need to provide them in `.env.https` and `.env.wss` file. Copy your `.env.https` and `.env.wss` files into the root directory of the project. The `.env.https` file should contain the credentials with the Vaas Url set to `https`and the wss file should contain the same credentials, but with a `wss` url instead.\n\n```bash\n# Copy the .env.wss and .env.https files to all SDK folders\n# to be able to run the integration tests\njust populate-env\n\n# If you see any strange error, e.g. not found compiler. Try to clean the project\n# and populate the environment again.\njust clean-all\njust populate-env\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdatasoftwareag%2Fvaas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgdatasoftwareag%2Fvaas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdatasoftwareag%2Fvaas/lists"}