{"id":18800556,"url":"https://github.com/xtra-computing/rush","last_synced_at":"2025-09-04T19:39:01.300Z","repository":{"id":244757117,"uuid":"816172005","full_name":"Xtra-Computing/RUSH","owner":"Xtra-Computing","description":"A fast library for real-time burst subgraph detection ","archived":false,"fork":false,"pushed_at":"2024-12-15T13:32:02.000Z","size":4832,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T08:22:28.076Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Xtra-Computing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-06-17T07:23:33.000Z","updated_at":"2024-12-15T13:32:06.000Z","dependencies_parsed_at":"2024-06-20T21:21:48.440Z","dependency_job_id":"836c1fa6-0d86-469c-bf1f-6b1c110499f6","html_url":"https://github.com/Xtra-Computing/RUSH","commit_stats":null,"previous_names":["alexcyh7/rush","xtra-computing/rush"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xtra-Computing%2FRUSH","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xtra-Computing%2FRUSH/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xtra-Computing%2FRUSH/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xtra-Computing%2FRUSH/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Xtra-Computing","download_url":"https://codeload.github.com/Xtra-Computing/RUSH/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248752374,"owners_count":21156080,"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":"2024-11-07T22:19:06.699Z","updated_at":"2025-04-13T17:31:20.093Z","avatar_url":"https://github.com/Xtra-Computing.png","language":"Python","readme":"# RUSH\n## Introduction\n\nIn the ever-evolving landscape of e-commerce, the real-time detection of fraudulent activities is crucial for platforms like Grab, one of Southeast Asia's largest tech enterprises, known for its diverse services including digital payments and food delivery. This paper proposes RUSH (Real-time bUrst SubgrapH discovery framework), a pioneering framework tailored for real-time fraud detection within dynamic graphs. RUSH addresses the phenomenon of `burst subgraphs,' characterized by rapid increases in subgraph density within short timeframes—a scenario traditional fraud detection methods, which analyze static graphs, and existing incremental frameworks struggle to efficiently manage due to their inability to handle sudden surges in data. By focusing on both the density and the rate of change of subgraphs, RUSH identifies crucial indicators of fraud. Utilizing a sophisticated incremental update mechanism, RUSH processes large-scale graphs with high efficiency, catering to the demands of the fast-paced e-commerce industry. Furthermore, RUSH is equipped with user-friendly APIs, facilitating the customization and integration of specific fraud detection metrics. Through extensive experimental evaluations on real-world datasets, we demonstrate RUSH's efficiency and effectiveness in fraud detection. Through case studies, we illustrate how RUSH can effectively detect fraud communities within various Grab business scenarios and identify wash trading in NFT networks.\n\nThis is the source code for the paper: 'RUSH: Real-time Burst Subgraph Detection in Dynamic Graphs'.\n\n## Homepage and Paper\n\n+ Homepage (RUSH): [https://github.com/Xtra-Computing/RUSH](https://github.com/Xtra-Computing/RUSH)\n+ Paper Access:\n    - **VLDB**: [https://www.vldb.org/pvldb/vol17/p3657-chen.pdf](https://www.vldb.org/pvldb/vol17/p3657-chen.pdf)\n \n## Compile\n\nOur framework requires c++18 and GCC 8.x (or later). One can compile the code by executing the following commands.\n\n```shell\ngit clone https://github.com/Alexcyh7/RUSH.git\ncd RUSH\nmkdir build\ncd build\ncmake ..\nmake\n```\n\n## Execute\n\nAfter a successful compilation, the binary file is created under the `build/` directory. One can execute RUSH using the following command.\n\n```shell\n./rush \u003cstatic_file\u003e \u003cincrement_file\u003e \u003cstart_time\u003e \u003ctime_slice_length\u003e \u003chalf_life_ratio\u003e \u003cretirement_ratio\u003e \u003coutput_directory\u003e\n```\n\nwhere `\u003cstatic_file\u003e` is the data graph file, and `\u003cincrement_file\u003e` is the increment data graph file. `\u003cstart_time\u003e` is the start time for the incremental updating.\n\n### Data Graph \u0026 Pattern\n\nEach line in the data graph file represent an edge.\n\nAn edge is represented by `\u003cvertex-id-1\u003e \u003cvertex-id-2\u003e \u003cgraph_weight\u003e \u003ctimestamp\u003e`.\n\nFor example, a 4-clique data graph with weight for each edge as 0.5 (with fake timestamp from 1 to 6) can be represented by\n\n```\n0 1 0.5 1\n0 2 0.5 2\n0 3 0.5 3\n1 2 0.5 4\n1 3 0.5 4\n2 3 0.5 6\n```\n\n## Datasets and Querysets\n\nWe provide some test dataset and query example in dataset folder. The complete NFT graph datasets used in our paper can be downloaded [here](https://livegraphlab.github.io/)\n\n## Example\nOn the 'build' directory, one can run the following script to conduct the burst subgraph detection on the example bayc graph.\n```shell\nmkdir bayc_potential_fraud\n./rush ../dataset/static.txt ../dataset/increment.txt 1650364600 3600 1 16 ./bayc_potential_fraud\n```\n\n## Algorithm Scratch\nWe provde a scratch code to show how a user can use RUSH library to design a burst detection system.\nThe BuildWeightMap function takes the type of weight function as input. Users can specify WeightFunctionType::User and implement their own weight function.\n```c\nBurstGraph\u003cfalse\u003e graph;\ngraph.LoadGraphFromFile(input_graph_file);\ngraph.BuildWeightMap(WeightFunctionType::Degree);\ngraph.GeneratePeelingSequence();\ngraph.FindDenseSubgraph();\n```\n\n__License:__ [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html)\n\nCopyright (c) 2023-2024 Xtra Computing Group, NUS, Singapore.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxtra-computing%2Frush","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxtra-computing%2Frush","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxtra-computing%2Frush/lists"}