{"id":23788869,"url":"https://github.com/getevo/evo","last_synced_at":"2025-09-06T07:32:14.643Z","repository":{"id":37983841,"uuid":"269669333","full_name":"getevo/evo","owner":"getevo","description":"Evo is a powerful package for quickly writing modular web applications/services in Golang aimed both backend and frontend.","archived":false,"fork":false,"pushed_at":"2025-08-03T10:00:57.000Z","size":25217,"stargazers_count":34,"open_issues_count":13,"forks_count":8,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-03T12:04:34.691Z","etag":null,"topics":["backend","evo","fiber","frontend","golang","gorm","jet","mapstructure","modular","template-engine"],"latest_commit_sha":null,"homepage":"https://getevo.github.io/evo/","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/getevo.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2020-06-05T14:42:13.000Z","updated_at":"2025-08-03T10:01:01.000Z","dependencies_parsed_at":"2023-11-29T11:45:03.507Z","dependency_job_id":"74beae97-20e8-4658-a2e6-311c66795310","html_url":"https://github.com/getevo/evo","commit_stats":null,"previous_names":[],"tags_count":61,"template":false,"template_full_name":null,"purl":"pkg:github/getevo/evo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getevo%2Fevo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getevo%2Fevo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getevo%2Fevo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getevo%2Fevo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/getevo","download_url":"https://codeload.github.com/getevo/evo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getevo%2Fevo/sbom","scorecard":{"id":424178,"data":{"date":"2025-08-11","repo":{"name":"github.com/getevo/evo","commit":"4181342db580ae9571d354abddb1f5a1f73f46b0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.5,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":4,"reason":"5 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/docker-publish.yml:11","Warn: no topLevel permission defined: .github/workflows/docker-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/go-build.yml:1","Warn: no topLevel permission defined: .github/workflows/go-test.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/docker-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/docker-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker-publish.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/docker-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/docker-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker-publish.yml:66: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/docker-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-build.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/go-build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-build.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/go-build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-test.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/go-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-test.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/go-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:61: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:91: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:93: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:107: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/getevo/evo/release.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:2","Info:   0 out of  13 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  10 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: MIT License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":7,"reason":"3 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2025-3845 / GHSA-qx2q-88mx-vhg7","Warn: Project is vulnerable to: GO-2024-3321 / GHSA-v778-237x-gjrc","Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-19T01:54:49.770Z","repository_id":37983841,"created_at":"2025-08-19T01:54:49.770Z","updated_at":"2025-08-19T01:54:49.770Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273873370,"owners_count":25183363,"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-06T02:00:13.247Z","response_time":2576,"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":["backend","evo","fiber","frontend","golang","gorm","jet","mapstructure","modular","template-engine"],"created_at":"2025-01-01T16:51:23.929Z","updated_at":"2025-09-06T07:32:14.624Z","avatar_url":"https://github.com/getevo.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EVO Framework\n\nEVO Framework is a backend development solution designed to facilitate efficient development using the Go programming language. It is built with a focus on modularity and follows the MVC (Model-View-Controller) architectural pattern. The core of EVO Framework is highly extensible, allowing for seamless extension or replacement of its main modules.\n\n## Key Features\n\n- **Modularity**: EVO Framework promotes modularity, enabling developers to structure their codebase in a modular manner.\n- **MVC Structure**: Following the widely adopted MVC pattern, EVO Framework separates concerns and improves code organization.\n- **Comprehensive Toolset**: EVO Framework provides a rich set of tools, eliminating the need for developers to deal with low-level libraries and technologies.\n- **Enhanced Readability**: By leveraging the EVO Framework, your code becomes more readable and clear, enhancing collaboration and maintainability.\n\nWith EVO Framework, you can focus on your programming logic and rapidly develop robust backend solutions without getting bogged down by intricate implementation details.\n\n## Table of Contents\n- [Getting Started](#getting-started)\n- [Configuration and Settings](docs/configuration.md)\n- [Database](docs/database.md)\n- [Database Migration](docs/migration.md)\n- [Modules](#libraries)\n- [Web Server](docs/webserver.md)\n- [Storage Interface](lib/storage/README.md)\n- [Cache Interface](lib/memo/README.md)\n- [Messaging Bus Interface](lib/pubsub/README.md)\n- [Date](lib/date/README.md)\n- [Internationalization](lib/text/README.md)\n- [TPL Templates](docs/tpl.md)\n- [CURL](docs/curl.md)\n- [Build](lib/build/README.md)\n- [Args](docs/args.md)\n- [Logging](docs/log.md)\n  - [File Logger](docs/file_logger.md)\n- [Concurrency Patterns](lib/async/README.md)\n- [STract configuration language](lib/stract/README.md)\n- [Local Files](lib/gpath/README.md)\n- [Dot Notation](docs/dot.md)\n- [Reflections](docs/reflections.md)\n- [Validations](docs/validation.md)\n- [GORM based pagination](https://github.com/getevo/pagination)\n\n## Libraries\nEVO Framework includes a comprehensive set of libraries in the `lib` directory:\n\n- [Application](lib/application/README.md) - Application management\n- [Args](lib/args/README.md) - Command-line argument handling\n- [Async](lib/async/README.md) - Asynchronous operations\n- [Build](lib/build/README.md) - Build utilities\n- [Connectors](lib/connectors/README.md) - External system connectors\n- [Curl](lib/curl/README.md) - HTTP client functionality\n- [Date](lib/date/README.md) - Date and time utilities\n- [DB](lib/db/README.md) - Database operations\n- [Dot](lib/dot/README.md) - Dot notation for accessing nested data\n- [Errors](lib/errors/README.md) - Error handling\n- [Frm](lib/frm/README.md) - Form handling\n- [Generic](lib/generic/README.md) - Generic data structures\n- [Gpath](lib/gpath/README.md) - Path manipulation\n- [Is](lib/is/README.md) - Type checking utilities\n- [JSON](lib/json/README.md) - JSON handling\n- [Log](lib/log/README.md) - Logging system\n- [Memo](lib/memo/README.md) - Memoization and caching\n- [Model](lib/model/README.md) - Data modeling\n- [Outcome](lib/outcome/README.md) - Function result handling\n- [Panics](lib/panics/README.md) - Panic handling\n- [Ptr](lib/ptr/README.md) - Pointer utilities\n- [Pubsub](lib/pubsub/README.md) - Publish-subscribe pattern\n- [Reflections](lib/reflections/README.md) - Reflection utilities\n- [Scheduler](lib/scheduler/README.md) - Task scheduling\n- [Serializer](lib/serializer/README.md) - Data serialization\n- [Settings](lib/settings/README.md) - Configuration management\n- [Storage](lib/storage/README.md) - Storage interfaces\n- [Stract](lib/stract/README.md) - Structured data handling\n- [Text](lib/text/README.md) - Text manipulation\n- [Tpl](lib/tpl/README.md) - Template system\n- [Try](lib/try/README.md) - Error handling with try/catch pattern\n- [Validation](lib/validation/README.md) - Data validation\n- [Version](lib/version/README.md) - Version management\n\n## Getting Started\n\nTo get started with EVO Framework, follow these steps:\n\n1. Install EVO Framework by running the following command:\n   ```shell\n   $ go get github.com/getevo/evo/v2\n   ```\n2. Create Minimum Configuration File\n```yaml\n#config.yml\nDatabase:\n   Cache: \"false\"\n   ConnMaxLifTime: 1h\n   Database: \"database\"\n   Debug: \"3\"\n   Enabled: \"false\"\n   MaxIdleConns: \"10\"\n   MaxOpenConns: \"100\"\n   Params: \"\"\n   Password: \"password\"\n   SSLMode: \"false\"\n   Server: 127.0.0.1:3306\n   SlowQueryThreshold: 500ms\n   Type: mysql\n   Username: root\nHTTP:\n   BodyLimit: 1kb\n   CaseSensitive: \"false\"\n   CompressedFileSuffix: .evo.gz\n   Concurrency: \"1024\"\n   DisableDefaultContentType: \"false\"\n   DisableDefaultDate: \"false\"\n   DisableHeaderNormalizing: \"false\"\n   DisableKeepalive: \"false\"\n   ETag: \"false\"\n   GETOnly: \"false\"\n   Host: 0.0.0.0\n   IdleTimeout: \"0\"\n   Immutable: \"false\"\n   Network: \"\"\n   Port: \"8080\"\n   Prefork: \"false\"\n   ProxyHeader: X-Forwarded-For\n   ReadBufferSize: 8kb\n   ReadTimeout: 1s\n   ReduceMemoryUsage: \"false\"\n   ServerHeader: EVO\n   StrictRouting: \"false\"\n   UnescapePath: \"false\"\n   EnablePrintRoutes: false\n   WriteBufferSize: 4kb\n   WriteTimeout: 5s\n\n```\n3. Initialize the EVO Framework and start building your application:\n```go\npackage main\n\nimport (\n   \"github.com/getevo/evo/v2\"\n)\n\nfunc main() {\n    // initialize evo\n    evo.Setup()\n\t\n    //your code goes here ...\n    evo.Run()\n}\n\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetevo%2Fevo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetevo%2Fevo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetevo%2Fevo/lists"}