{"id":18936987,"url":"https://github.com/sekky61/riscv-sim","last_synced_at":"2025-04-15T18:31:46.174Z","repository":{"id":250418044,"uuid":"686135256","full_name":"Sekky61/riscv-sim","owner":"Sekky61","description":"Web-based RISC-V superscalar simulator","archived":false,"fork":false,"pushed_at":"2025-03-23T21:23:14.000Z","size":34653,"stargazers_count":14,"open_issues_count":7,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-29T00:41:16.357Z","etag":null,"topics":["java","nextjs","react","riscv"],"latest_commit_sha":null,"homepage":"","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/Sekky61.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-01T20:45:30.000Z","updated_at":"2024-12-28T22:25:25.000Z","dependencies_parsed_at":"2025-03-20T22:36:36.047Z","dependency_job_id":null,"html_url":"https://github.com/Sekky61/riscv-sim","commit_stats":null,"previous_names":["sekky61/riscv-sim"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sekky61%2Friscv-sim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sekky61%2Friscv-sim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sekky61%2Friscv-sim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sekky61%2Friscv-sim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sekky61","download_url":"https://codeload.github.com/Sekky61/riscv-sim/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249129171,"owners_count":21217297,"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":["java","nextjs","react","riscv"],"created_at":"2024-11-08T12:09:30.408Z","updated_at":"2025-04-15T18:31:41.158Z","avatar_url":"https://github.com/Sekky61.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Web Based Simulator of Superscalar Processors\n\n![image](https://github.com/user-attachments/assets/c0d9b4ea-a7fc-4445-bf57-5ec339f674c6)\n\n## Introduction\n\nThis is a RISC-V Simulator Web App. The project builds on the superscalar simulator created by Jakub Horky and Jan Vavra. The goal is to add a **web** and a **CLI** interface.\n\nIn this readme, you will find instructions to build and run the app both natively and in Docker.\nThe project consists of two components: web app and Java simulator server. More detailed info can be found in their respective Readmes [Sources/frontend/Readme.md](Sources/frontend/Readme.md) and [Sources/simulator/Readme.md](Sources/simulator/Readme.md)).\n\n## Repository Structure\n\n    .\n    +--Data       - Example data, measured results, etc.\n    +--Literature - Publications, references, manuals, etc.\n    +--Sources    - Root folder for the sources.\n    +--Thesis     - Latex sources of the thesis.\n    +--Misc       - Other auxiliary materials.\n    Readme.md     - Read me file\n\n## Installation Instructions\n\n\u003e TLDR: cd Sources \u0026\u0026 ./build_container.sh \u0026\u0026 ./run_container.sh\n\nYou can either build the project locally or use docker.\nFirst the manual build is described, then the docker build.\n\nIf anything is unclear, you can refer to the Dockerfiles, which contain all the necessary steps.\nThe `Sources/frontend` and `Sources/simulator` also contain their own, more detailed instructions.\n\n### Build and Run Frontend Web App\n\n\u003e Requirements: npm, node.js\n\nThe app was developed using npm `10.2.3` and node.js `v21.2.0`.\nYou need to have these installed to build the frontend app (later versions should work as well).\n\nTo build the production version of the app, start by navigating to `Sources/frontend` and installing dependencies:\n\n```bash\nnpm install\n```\n\nTo build the app, run:\n\n```bash\nnpm run build\n```\n\nUnfortunately, some of the files need to be manually copied over:\n```bash\ncp -r .next/static/ .next/standalone/.next/static\n```\n\nNow that the app is built, you can run it using:\n```bash\nnode .next/standalone/server.js\n```\nNavigate to `http://localhost:3000` to see the app (or the address shown in the console).\n\nFor more detailed documentation and to develop the app, see `Sources/frontend/Readme.md`.\n\n### Build and Run Simulation Server\n\n\u003e Requirements: Java\n\nThe backend server is written in Java using version `17.0.6`. Gradle is bundled with the project, so you don't need to install it.\n\nTo build the backend server, navigate to `Sources/simulator` and run:\n\n```bash\n./scripts/install.sh\n```\n\nTo use the app (either CLI or server), run `./scripts/run.sh help` to see the available options.\n\nTo run the server, type `./scripts/run.sh server`.\n\nFor more detailed documentation, see `Sources/simulator/Readme.md`.\n\n### HTTPS\n\nAdd SSL/TLS certificates to `Sources/proxy/certs` to enable HTTPS. A Nginx proxy is created as a Docker container during the startup.\nNote, that this step is not necessary to run the app.\nFor details, see [Sources/proxy/Readme.md](Sources/proxy/Readme.md).\n\n### Docker\n\nThe two components have their respective Dockerfiles in their directories.\nThere is a docker compose file located at `Sources/`. It builds the frontend and backend and runs them together.\n\nThere are prepared scripts `Sources/build_container.sh`, `Sources/run_container.sh` and `Sources/stop_container.sh` to run and stop the container.\nNote that sudo might be required to run the docker commands.\nAlso note that older Docker versions use command `docker-compose` instead of `docker compose`.\n\nDeveloped using Docker `24.0.7` and `20.10.2` (version on `sc-gpu1` server).\n\nBelow is the recommended way to build and run the project using Docker.\n\n```bash\ncd Sources\n./build_container.sh\n./run_container.sh\n```\n\nOnce the containers are running, one of two things can happen:\n\n1. You supplied keys to `Sources/proxy/certs` and the app is available on port 3120 (http) and 3121 (https).\n\n2. You didn't supply keys and the app is available on port 3100 (http).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsekky61%2Friscv-sim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsekky61%2Friscv-sim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsekky61%2Friscv-sim/lists"}