{"id":28533795,"url":"https://github.com/epam/rapier","last_synced_at":"2025-06-17T04:35:36.039Z","repository":{"id":21325711,"uuid":"24642425","full_name":"epam/Rapier","owner":"epam","description":"REST service for OpenFlow switch configuration","archived":false,"fork":false,"pushed_at":"2014-11-10T14:26:31.000Z","size":344,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-09T17:09:33.748Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/epam.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}},"created_at":"2014-09-30T14:59:07.000Z","updated_at":"2015-02-17T07:54:56.000Z","dependencies_parsed_at":"2022-08-17T18:40:57.363Z","dependency_job_id":null,"html_url":"https://github.com/epam/Rapier","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/epam/Rapier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2FRapier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2FRapier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2FRapier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2FRapier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epam","download_url":"https://codeload.github.com/epam/Rapier/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2FRapier/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260294103,"owners_count":22987597,"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","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":[],"created_at":"2025-06-09T17:08:42.226Z","updated_at":"2025-06-17T04:35:36.031Z","avatar_url":"https://github.com/epam.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rapier\n\n## What is Rapier?\n\nThis is REST service for OpenFlow switch configuration.\n\n### Features\n\n * Basic get config from switch: [getconfig][of-c-d]\n * Basic post config to switch: [postconfig][of-c-d]\n * Variety post config to switch: [post][of-c-d]\n\n## How to use it?\n\n### Erlang\n\nIf you want to use Rapier you need to have an Erlang runtime installed on your\nmachine. Required version is R16B02.\n\n### LINC-Switch\n\nYou can download\u0026install switch from [LINC-Switch][ofs].\n\n### Install Rapier\n\n1. Make sure that you have started LINC-Switch (for example: localhost)\n2. Clone this repo on your own machine\n3. `# make`\n\n### Start Rapier\n\nStep by step (if required you must start ssh manually):\n\n    # make run\n    # ssh:start().\n\n### Test Rapier\n\n1. Make sure that you have started Rapier and LINC-Switch (for example: localhost)\n2. Try to type `curl http://localhost:8008/getconfig`\n3. Try to type `curl http://localhost:8008/postconfig` which will post standart config\n   with such parameters:\n   \n   `Controller = {controller, [{id, [\"Controller0\"]},`\n   `                           {'ip-address', [\"127.0.0.1\"]},`\n   `                           {port, [\"6633\"]}, {protocol, [\"tcp\"]}]},`\n   `Config = {'capable-switch', [{xmlns, \"urn:onf:of111:config:yang\"}],`\n   `          [{id, [\"CapableSwitch0\"]}, {'logical-switches',`\n   `          [{'switch', [{id, [\"LogicalSwitch0\"]}, {'datapath-id', [\"11:11:11:11:11:11:11:11\"]},`\n   `           {enabled, [\"true\"]}, {controllers, [Controller]}]}]}]}.`\n\n4. You can use `post` method with such template:\n   `ip:port/post/ssh_port/controller/controller_ip/`\n   `controller_port/protocol/capable_switch/logical_switch/datapath_id`.\n   \n   For example:\n   `curl http://localhost:8008/post/1830/Controller0/127.0.0.1`\n   `/6633/tcp/CapableSwitch0/LogicalSwitch0/21:11:11:11:11:11:11:11`\n\n5. You can use `postjson` method to use JSON notation with such template:\n   `{\"sshd_port\":\"ssh_port\", \"controller_id\":\"controller\", \"controller_ip\":\"controller_ip\",`\n   `\"controller_port\":\"controller_port\", \"controller_protocol\":\"protocol\",`\n   `\"capable_switch\":\"capable_switch\", \"logical_switch\":\"logical_switch\",`\n   `\"datapath\":\"datapatch_id\"}' http://ip:port/postjson`\n\n   For example:\n   `curl -d '{\"sshd_port\":\"1830\", \"controller_id\":\"Controller0\", \"controller_ip\":\"127.0.0.1\",`\n   `\"controller_port\":\"6633\", \"controller_protocol\":\"tcp\", \"capable_switch\":\"CapableSwitch0\",`\n   `\"logical_switch\":\"LogicalSwitch0\", \"datapath\":\"11:11:11:11:11:11:11:11\"}' http://localhost:8008/postjson`  \n\n## Development environment\n\n1. \"[Sync][sync]\" - scans all the beam files and their corresponding source\n   files and reloads or recompiles them respectively if necessary.\n2. Makefile targets.\n\n## Support\n\nIf you have any technical questions, problems or suggestions regarding Rapier\nplease send them to Ihar_Kukharchuk@epam.com or create an Issue. Thanks.\n\n[ofs]: https://github.com/gentigr/LINC-Switch/\n[of-c-d]: https://github.com/FlowForwarding/LINC-Switch/wiki/OF-Config-Demo\n[sync]: https://github.com/mentels/sync\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepam%2Frapier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepam%2Frapier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepam%2Frapier/lists"}