{"id":13769557,"url":"https://github.com/dos-group/leaf-java","last_synced_at":"2025-12-27T20:10:50.354Z","repository":{"id":74647237,"uuid":"318498545","full_name":"dos-group/leaf-java","owner":"dos-group","description":"A simulator for large energy-aware fog computing environments 🌱","archived":false,"fork":false,"pushed_at":"2021-07-08T14:59:53.000Z","size":7494,"stargazers_count":10,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-03T17:08:29.446Z","etag":null,"topics":["edge-computing","energy-consumption","fog-computing","modeling","simulation"],"latest_commit_sha":null,"homepage":"","language":"Java","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/dos-group.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}},"created_at":"2020-12-04T11:40:30.000Z","updated_at":"2024-03-29T07:26:34.000Z","dependencies_parsed_at":"2023-03-19T19:02:43.564Z","dependency_job_id":null,"html_url":"https://github.com/dos-group/leaf-java","commit_stats":{"total_commits":25,"total_committers":2,"mean_commits":12.5,"dds":"0.040000000000000036","last_synced_commit":"f3481a1df7e906a685d9613eff1f79e563598ffa"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dos-group%2Fleaf-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dos-group%2Fleaf-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dos-group%2Fleaf-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dos-group%2Fleaf-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dos-group","download_url":"https://codeload.github.com/dos-group/leaf-java/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225004608,"owners_count":17405648,"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":["edge-computing","energy-consumption","fog-computing","modeling","simulation"],"created_at":"2024-08-03T17:00:28.394Z","updated_at":"2025-12-27T20:10:45.301Z","avatar_url":"https://github.com/dos-group.png","language":"Java","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# LEAF 🌱\n\nA simulator for **L**arge **E**nergy-**A**ware **F**og computing environments.\nLEAF enables energy consumption modeling of distributed, heterogeneous, and resource-constrained infrastructure that executes complex application graphs.\n\nFeatures include:\n\n- **Power modeling**: Model the power usage of individual compute nodes, network traffic and applications\n- **Energy-aware algorithms**: Implement dynamically adapting task placement strategies, routing policies, and other energy-saving mechanisms\n- **Dynamic networks**: Nodes can be mobile and can join or leave the network during the simulation\n- **Scalability**: Simulate thousands of devices and applications in magnitudes faster than real time\n- **Exporting**: Export power usage characteristics and other results as CSV files for further analysis\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"/images/infrastructure.png\"\u003e\n\u003c/p\u003e\n\n\n## Python Implementation\n\nWe created a new, lightweight implementation of LEAF in Python.\nAlthough the Python version is currently less performant, we hope the cleaner interface, improved usability, \nand bigger third party library support - especially for machine learning - will lead to a greater adoption of our model.\n\nYou can find the new implementation [here](https://github.com/dos-group/leaf) and its documentation [here](https://leaf.readthedocs.io/en/latest/).\n\n\n\n## Core\n\nThe package `org.leaf` contains the infrastructure and application model as well as related power models.\n\nThe current implementation is based on [CloudSim Plus](https://github.com/manoelcampos/cloudsim-plus),\na modern and fully documented simulation framework.\nSeveral features and improvements developed within LEAF were directly contributed to the CloudSim Plus core and\nreleased in [version 6](https://github.com/manoelcampos/cloudsim-plus/releases/tag/v6.0.0).\n\nInfrastructure and application graphs are implemented through [JGraphT](https://jgrapht.org/).\n\n\n### Example Scenario\nThe package `org.examples.smart_city_traffic` implements an exemplary traffic management scenario in a smart city.\nThe example contains:\n- multiple custom compute nodes, network links, and applications\n- a mobility model for taxis modelled after a taxi traffic dataset from the  \n[2015 DEBS Grand Challenge competition](http://www.debs2015.org/call-grand-challenge.html)\n- two different application placement algorithms\n- a **live visualization** to monitor experiments at runtime which contains\n    - a map of the city and the location of taxis\n    - the number of taxis on the map over time\n    - the power usage of infrastructure components over time\n    - the power usage of applications over time\n\n\u003cimg src=\"/images/visualization.png\" width=\"70%\"\u003e\n\nExperiments can be configured via the `Settings` class.\nTo improve simulation speed increase the `LOG_LEVEL` and reduce the `VISUALIZATION_REDRAW_INTERVAL`.\n\n\n### Analysis\nThe directory `analysis` contains the experiment analysis code written in Python.\nFor running the analysis yourself, [install conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/) adapt `settings.py` and run:\n\n```\ncd analysis\nconda env create\nconda activate leaf_analysis\npython create_plots.py\n```\n\n## Publications\n\n- Philipp Wiesner and Lauritz Thamsen. \"[LEAF: Simulating Large Energy-Aware Fog Computing Environments](https://ieeexplore.ieee.org/document/9458907)\" In the Proceedings of the 2021 *5th IEEE International Conference on Fog and Edge Computing (ICFEC)*, IEEE, 2021. [[arXiv preprint]](https://arxiv.org/pdf/2103.01170.pdf) [[video]](https://youtu.be/G70hudAhd5M)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdos-group%2Fleaf-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdos-group%2Fleaf-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdos-group%2Fleaf-java/lists"}