{"id":38813391,"url":"https://github.com/yanet-platform/yanet","last_synced_at":"2026-01-17T12:57:29.073Z","repository":{"id":196949844,"uuid":"670149767","full_name":"yanet-platform/yanet","owner":"yanet-platform","description":"A high performance framework for forwarding traffic based on DPDK","archived":false,"fork":false,"pushed_at":"2025-11-29T17:28:02.000Z","size":13427,"stargazers_count":208,"open_issues_count":36,"forks_count":26,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-11-30T03:17:37.622Z","etag":null,"topics":["cpp","dpdk","firewall","networking","router"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yanet-platform.png","metadata":{"files":{"readme":"README-devel.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-24T12:02:16.000Z","updated_at":"2025-11-27T12:26:50.000Z","dependencies_parsed_at":"2024-03-11T20:50:05.205Z","dependency_job_id":"01321aec-8c77-49fc-a378-2376176bff73","html_url":"https://github.com/yanet-platform/yanet","commit_stats":null,"previous_names":["yanet-platform/yanet"],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/yanet-platform/yanet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanet-platform%2Fyanet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanet-platform%2Fyanet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanet-platform%2Fyanet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanet-platform%2Fyanet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yanet-platform","download_url":"https://codeload.github.com/yanet-platform/yanet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanet-platform%2Fyanet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28508872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T11:50:55.898Z","status":"ssl_error","status_checked_at":"2026-01-17T11:50:55.569Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["cpp","dpdk","firewall","networking","router"],"created_at":"2026-01-17T12:57:28.950Z","updated_at":"2026-01-17T12:57:29.051Z","avatar_url":"https://github.com/yanet-platform.png","language":"C++","readme":"# Development Guidelines\n\n## Git Workflow\n\nWe aim to maintain a [linear](https://www.bitsnbites.eu/a-tidy-linear-git-history/) git history.\nIn practice, this means using **rebase** when resolving conflicts instead of merge commits, whenever possible.\n\nWe also follow the principles of [trunk-based development](https://www.atlassian.com/continuous-delivery/continuous-integration/trunk-based-development).\n\n### Commit Message Guidelines\n\nFor detailed guidance on writing commit messages, see:\n- [How to Write a Git Commit Message](https://cbea.ms/git-commit/)\n- [Torvalds' Git Commit Guide](https://github.com/torvalds/subsurface-for-dirk/blob/a48494d2fbed58c751e9b7e8fbff88582f9b2d02/README#L88-L115)\n\nThe most important rules to follow are:\n\n- Separate the commit title from its body with a blank line.\n- Limit the commit title to ~50 characters (or fewer).\n- Capitalize the first letter of the commit title.\n- Do not end the commit title with a period.\n- Use the imperative mood (e.g., \"Add\", \"Fix\", \"Update\", \"Remove\").\n- Wrap lines in the commit body to ~72 characters.\n- Focus on what was changed and why it was changed (not how).\n\nYou can omit the commit body if the change is obvious from the title. However, if the change is not self-evident, add a commit body explaining the reasons and context behind it.\n\n**Example commit message:**\n\n````\nAdd missing clearFWState to some firewall tests\n\nSome tests were missing the clearFWState step, which resulted\nin incorrect behavior in other tests due to the presence of\nstates from previous runs.\n````\n\n### Pull Request Guidelines\n\nPull requests titles should follow the same general style as commit messages. The PR description should:\n\n- Provide a more detailed explanation of *what* is being changed.\n- Explain *why* these changes are necessary.\n- If this PR fixes an issue, link it using [issue linking](https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue).\n   - If no issue exists, describe the problem that the PR solves.\n\n\n### C++ Style Guide\n\nBy default, follow the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html), with the following exceptions:\n\n- Line length is limited to 100 characters (instead of 80).\n- Curly braces are placed on a new line\n- Exceptions are allowed, except in dataplane code.\n- Numeric built-in types (e.g., \"short\", \"long\", etc.) are allowed.\n- Use tabs set to 4 spaces for indentation (instead of 2).\n- C++ source files use the `.cpp` extension instead of `.cc`.\n- `#pragma once` is permitted instead of traditional include guards.\n- Files and directories are named using `snake_case`.\n- The order of access specifiers in a class definition is ideally:\n\n```cpp\nclass Example\n{\n  private:\n    ...\n\n  protected:\n     ...\n\n  public:\n    ...\n};\n\n```\n\n- WIP: something else?\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyanet-platform%2Fyanet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyanet-platform%2Fyanet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyanet-platform%2Fyanet/lists"}