{"id":18258764,"url":"https://github.com/manoelcampos/java-gossip-simulator","last_synced_at":"2025-04-08T23:26:24.456Z","repository":{"id":57726432,"uuid":"292657265","full_name":"manoelcampos/java-gossip-simulator","owner":"manoelcampos","description":"An experimental Java 17 API to enable simulating the dissemination of data across nodes in a network using the Gossip Epidemic Protocol ☕️🗣🐞","archived":false,"fork":false,"pushed_at":"2023-11-29T22:44:12.000Z","size":244,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-14T18:20:31.248Z","etag":null,"topics":["api","experimental","gossip-protocol","java","simulation","simulator"],"latest_commit_sha":null,"homepage":"https://manoelcampos.com/java-gossip-simulator/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manoelcampos.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-09-03T19:07:12.000Z","updated_at":"2021-09-25T15:16:16.000Z","dependencies_parsed_at":"2023-12-16T17:02:39.748Z","dependency_job_id":"20408556-6274-4cce-aade-e7c3aa7fff91","html_url":"https://github.com/manoelcampos/java-gossip-simulator","commit_stats":{"total_commits":81,"total_committers":1,"mean_commits":81.0,"dds":0.0,"last_synced_commit":"45c5404f7ad90e320df4160cc40534f07e6280ef"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoelcampos%2Fjava-gossip-simulator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoelcampos%2Fjava-gossip-simulator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoelcampos%2Fjava-gossip-simulator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoelcampos%2Fjava-gossip-simulator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manoelcampos","download_url":"https://codeload.github.com/manoelcampos/java-gossip-simulator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247944220,"owners_count":21022546,"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":["api","experimental","gossip-protocol","java","simulation","simulator"],"created_at":"2024-11-05T10:34:30.099Z","updated_at":"2025-04-08T23:26:24.426Z","avatar_url":"https://github.com/manoelcampos.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Java Gossip Protocol Simulator API [![Build Status](https://github.com/manoelcampos/java-gossip-simulator/actions/workflows/maven.yml/badge.svg)](https://github.com/manoelcampos/java-gossip-simulator/actions/workflows/maven.yml) [![Maven Central](https://img.shields.io/maven-central/v/com.manoelcampos/gossip-simulator.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.manoelcampos%22%20AND%20a:%22gossip-simulator%22) [![javadoc](https://javadoc.io/badge2/com.manoelcampos/gossip-simulator/javadoc.svg)](https://javadoc.io/doc/com.manoelcampos/gossip-simulator)\n\nAn experimental Java 17 API to enable simulating the dissemination of data\nacross nodes (Hosts) in a network using the [Gossip epidemic protocol](https://en.wikipedia.org/wiki/Gossip_protocol).\n\nThe API enables running the simulation using a single computer.\nEvery node is represented by a [Plain Old Java Object](https://en.wikipedia.org/wiki/Plain_old_Java_object) `GossipNode`.\nTherefore, since this is a simulation API, there is no actual\nnetwork communication, not even in localhost.\n\n## 1. Examples\n\nThe figure below shows an example of the output for a simulation cycle,\nwhere nodes send a message to their neighbors.\nAn infected node 🐞 is that one which has already received a message,\notherwise it's a non-infected node 💚.\n\n![Simulation Results](results.png)\n\nA complete [example is available here](src/main/java/com/manoelcampos/gossipsimulator/examples/GossipSimulatorExample1.java).\n\n## 2. Links\n\nIf you want to understand how the Gossip Protocol works, check this\nnice [online graphical simulator](https://flopezluis.github.io/gossip-simulator/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanoelcampos%2Fjava-gossip-simulator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanoelcampos%2Fjava-gossip-simulator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanoelcampos%2Fjava-gossip-simulator/lists"}