{"id":38498691,"url":"https://github.com/rdkcentral/rbus","last_synced_at":"2026-01-17T05:57:25.572Z","repository":{"id":63274879,"uuid":"533387022","full_name":"rdkcentral/rbus","owner":"rdkcentral","description":"The rdkbus component is a generic message bus implementation intended for use across all RDK profiles","archived":false,"fork":false,"pushed_at":"2025-12-23T21:33:42.000Z","size":1557,"stargazers_count":2,"open_issues_count":41,"forks_count":44,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-12-25T10:45:36.384Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rdkcentral.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-09-06T15:27:34.000Z","updated_at":"2025-12-23T21:33:11.000Z","dependencies_parsed_at":"2024-01-19T17:46:22.835Z","dependency_job_id":"16e406fa-a2de-4666-a95c-b87434f2aeb7","html_url":"https://github.com/rdkcentral/rbus","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/rdkcentral/rbus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdkcentral%2Frbus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdkcentral%2Frbus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdkcentral%2Frbus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdkcentral%2Frbus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rdkcentral","download_url":"https://codeload.github.com/rdkcentral/rbus/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdkcentral%2Frbus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28501351,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T04:31:57.058Z","status":"ssl_error","status_checked_at":"2026-01-17T04:31:45.816Z","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":[],"created_at":"2026-01-17T05:57:25.485Z","updated_at":"2026-01-17T05:57:25.565Z","avatar_url":"https://github.com/rdkcentral.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Rbus\n\nRDK Bus (RBus) is a lightweight, fast and efficient bus messaging system. \nIt allows interprocess communication (IPC) and remote procedure call (RPC)\nbetween multiple process running on a hardware device.  It supports the\ncreation and use of a data model, which is a hierarchical tree of named \nobjects with properties, events, and methods.\n\n\n## Desktop Build (Linux)\n\n    export RBUS_ROOT=${HOME}/rbus\n    export RBUS_INSTALL_DIR=${RBUS_ROOT}/install\n    export RBUS_BRANCH=2105_sprint\n    mkdir -p $RBUS_INSTALL_DIR\n    cd $RBUS_ROOT\n\n#### Build rbus and dependencies \n\n    git clone https://github.com/rdkcentral/rbus\n    cmake -Hrbus -Bbuild/rbus -DCMAKE_INSTALL_PREFIX=${RBUS_INSTALL_DIR}/usr -DBUILD_FOR_DESKTOP=ON -DCMAKE_BUILD_TYPE=Debug\n    make -C build/rbus \u0026\u0026 make -C build/rbus install\n\n## Run Rbus Apps\n\nSetup 3 terminals:\n\n    export RBUS_ROOT=${HOME}/rbus \u0026\u0026 \\\n    export RBUS_INSTALL_DIR=${RBUS_ROOT}/install \u0026\u0026 \\\n    export PATH=${RBUS_INSTALL_DIR}/usr/bin:${PATH} \u0026\u0026 \\\n    export LD_LIBRARY_PATH=${RBUS_INSTALL_DIR}/usr/lib:${LD_LIBRARY_PATH}\n\n#### Start rtrouted\n\nIn terminal 1, run rtrouted.  This deamon must be running for rbus apps to communicate.\n\n    rtrouted -f -l DEBUG\n\nNote that if at any point in the future you want to restart rtrouted you can run this.\n\n    killall -9 rtrouted; rm -fr /tmp/rtroute*; rtrouted -f -l DEBUG\n\n#### Run a sample app\n\nNote that all sample apps come with both a provider and a consumer app. \nThe provider must be started first and then quickly, before the provider times out, the consumer should be started.\n\nIn terminal 2, run the sample provider.\n\n    rbusSampleProvider\n\nIn terminal 3, run the sample consumer.\n\n    rbusSampleConsumer\n\nHere is the list of all samples:\n\n1. rbusSampleProvider / rbusSampleConsumer\n2. rbusEventProvider / rbusEventConsumer\n3. rbusEventProvider / rbusEventConsumer\n4. rbusGeneralEventProvider / rbusGeneralEventConsumer\n5. rbusValueChangeProvider / rbusValueChangeConsumer\n6. rbusMethodProvider / rbusMethodConsumer\n7. rbusTableProvider / rbusTableConsumer\n\n#### Playing with rbuscli\n\nThe rbuscli utility app allows the user to register a data model and interact with it, \nexercising the rbus api both from a provider and consumer perspective.\n\nIn terminal 2, run rbuscli\n\n    rbuscli -i\n\nRegister a property as a provider would\n\n        \u003e reg prop A.B\n\nIn terminal 3, run rbuscli and set/get the property, registered by the first rbuscli, as a consumer would.\n\n    rbuscli -i\n        \u003e set A.B string \"hello\"\n        \u003e get A.B\n\nIn terminal 3, enable event logging and subscribe to a value-change event.\n\n        \u003e log events\n        \u003e sub A.B\n\nIn terminal 2, change the value so that a value-change event is generated.\n\n        \u003e set A.B string \"hello again\"\n\nIn terminal 3, logs should appear showing a value change event was received.\n\nThere's a lot more you can do with rbuscli. \nEnter ***help*** to get a full list of commands. \nWhen your done, enter ***quit*** to exit rbuscli.\n\n#### Run the test harness\n\nIn terminal 2, run the test provider\n\n    rbusTestProvider\n\nIn terminal 3, run the test consumer\n\n    rbusTestConsumer -a\n\n\nThe test takes about 5-10 minutes. Check for errors in the summary table at the end.\nTo get more details for any error, rerun the test passing ***-l debug*** to both the provider and consumer.\n\n#### Run with valgrind\n\nValgrind is an important tool to help find both memory leaks and memory related bugs.\n\nIn terminal 2, run a sample provider using valgrind.\n\n    valgrind --leak-check=full --show-leak-kinds=all rbusSampleProvider\n\nIn terminal 3, run a sample consumer using valgrind.\n\n    valgrind --leak-check=full --show-leak-kinds=all rbusSampleConsumer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frdkcentral%2Frbus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frdkcentral%2Frbus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frdkcentral%2Frbus/lists"}