{"id":24270651,"url":"https://github.com/9ssi7/deckv","last_synced_at":"2025-09-09T05:45:21.799Z","repository":{"id":272466359,"uuid":"916689337","full_name":"9ssi7/deckv","owner":"9ssi7","description":"simple and efficient disposable and temporary email address domain checker implementation for Go applications","archived":false,"fork":false,"pushed_at":"2025-01-20T21:47:57.000Z","size":17,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-06T09:45:05.638Z","etag":null,"topics":["allowlist","blocklist","disposable","domain","email","filter","golang"],"latest_commit_sha":null,"homepage":"https://pkg.go.dev/github.com/9ssi7/deckv","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/9ssi7.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}},"created_at":"2025-01-14T15:30:56.000Z","updated_at":"2025-01-20T21:47:50.000Z","dependencies_parsed_at":"2025-01-14T17:08:22.489Z","dependency_job_id":"f30de602-d4e9-4c85-a4af-acadc4903767","html_url":"https://github.com/9ssi7/deckv","commit_stats":null,"previous_names":["9ssi7/deckv"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/9ssi7/deckv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9ssi7%2Fdeckv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9ssi7%2Fdeckv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9ssi7%2Fdeckv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9ssi7%2Fdeckv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/9ssi7","download_url":"https://codeload.github.com/9ssi7/deckv/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9ssi7%2Fdeckv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274250508,"owners_count":25249396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["allowlist","blocklist","disposable","domain","email","filter","golang"],"created_at":"2025-01-15T16:28:08.816Z","updated_at":"2025-09-09T05:45:21.767Z","avatar_url":"https://github.com/9ssi7.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deckv - Disposable Email Checker as a Key-Value Store for Golang\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/9ssi7/deckv.svg)](https://pkg.go.dev/github.com/9ssi7/deckv)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nDeckv is a simple and efficient blocklist implementation for Go applications with support for multiple storage backends.\n\n## Features\n\n- Simple and easy-to-use API\n- Multiple storage backend support\n  - In-memory storage (default)\n  - Redis storage\n- Configurable through simple text files\n- Context support for all operations\n- Thread-safe operations\n\n## Installation\n\n```bash\ngo get github.com/9ssi7/deckv\n```\n\n## Usage\n\nSee the [examples](examples) directory for more detailed usage examples.\n\n\n## Quick Start\n\n### Blocklist Configuration File\n\nYou can create a blocklist configuration file with the following content:\n\n```\n0-mail.com\n1-mail.com\n```\n\nor real and full domain names, use this file [disposable-email-domains config file](https://github.com/disposable-email-domains/disposable-email-domains/blob/main/disposable_email_blocklist.conf) as a reference.\n\n### Using In-Memory Storage\n\nCreate a `blocklist.conf` file with the following content:\n\n```\n0-mail.com\n1-mail.com\n```\n\n```go\nclient := deckv.New(deckv.WithConfFilePath(\"./blocklist.conf\"))\nerr := client.Load(context.Background())\nif err != nil {\n    panic(err)\n}\nisBlocked, err := client.Check(context.Background(), \"0-mail.com\")\nif err != nil {\n    panic(err)\n}\nfmt.Println(isBlocked)\n```\n\n### Using Redis Storage\n\nCreate a `blocklist.conf` file with the following content:\n\n```\n0-mail.com\n1-mail.com\n```\n\nYou can use Redis storage by setting the `WithStorage` option.\n\n```go\nstorage := deckvredis.New(deckvredis.Config{\n    Host:     \"localhost\",\n    Port:     \"6379\",\n    Password: \"\",\n    DB:       0,\n})\nclient := deckv.New(deckv.WithConfFilePath(\"./blocklist.conf\"), deckv.WithStorage(storage))\nerr := client.Load(context.Background())\nif err != nil {\n    panic(err)\n}\nisBlocked, err := client.Check(context.Background(), deckv.FromEmail(\"test@0-mail.com\"))\nif err != nil {\n    panic(err)\n}\nfmt.Println(isBlocked)\n```\n\n## Configuration File Format\n\nThe blocklist configuration file is a simple text file with one entry per line:\n\n```\n0-mail.com\n1-mail.com\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F9ssi7%2Fdeckv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F9ssi7%2Fdeckv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F9ssi7%2Fdeckv/lists"}