{"id":18612483,"url":"https://github.com/alejandro945/ice-introduction","last_synced_at":"2026-04-26T22:31:17.755Z","repository":{"id":69072115,"uuid":"600246944","full_name":"alejandro945/ice-introduction","owner":"alejandro945","description":"The Internet Communications Engine (Ice) is an object-oriented RPC framework that helps you build distributed applications with minimal effort. Ice allows you to focus your efforts on your application logic, and it takes care of all interactions with low-level network programming interfaces.","archived":false,"fork":false,"pushed_at":"2023-02-10T23:30:47.000Z","size":107,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-17T00:11:17.231Z","etag":null,"topics":["distributed-systems","gradle","ice-middleware","java"],"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/alejandro945.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":"2023-02-10T23:14:12.000Z","updated_at":"2023-08-15T02:24:33.000Z","dependencies_parsed_at":"2023-03-23T09:02:31.147Z","dependency_job_id":null,"html_url":"https://github.com/alejandro945/ice-introduction","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alejandro945/ice-introduction","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alejandro945%2Fice-introduction","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alejandro945%2Fice-introduction/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alejandro945%2Fice-introduction/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alejandro945%2Fice-introduction/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alejandro945","download_url":"https://codeload.github.com/alejandro945/ice-introduction/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alejandro945%2Fice-introduction/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32315711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T21:09:39.134Z","status":"ssl_error","status_checked_at":"2026-04-26T21:09:21.240Z","response_time":129,"last_error":"SSL_read: 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":["distributed-systems","gradle","ice-middleware","java"],"created_at":"2024-11-07T03:17:37.562Z","updated_at":"2026-04-26T22:31:17.731Z","avatar_url":"https://github.com/alejandro945.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ice Middleware introduction 🎁\n\nWe will use Gradle to create our application projects. You must install Gradle before continuing with this tutorial.\nOpen a new Command Prompt and run the following commands to generate a new project:\n\nThe main design goals of **Ice** are:\n\n- Provide an object-oriented RPC framework suitable for use in heterogeneous environments.\n- Provide a full set of features that support development of realistic distributed applications for a wide variety of domains.\n- Avoid unnecessary complexity, making the platform easy to learn and to use.\n- Provide an implementation that is efficient in network bandwidth, memory use, and CPU overhead.\n- Provide an implementation that has built-in security, making it suitable for use over insecure public networks.\n\n## Initializing 🏗️\n\n```bash\nmkdir ice-introduction\ncd ice-introduction\ngradle init\n```\n\n## Configuration 🫰\n\nFor this demo we're going to use a project with two sub-projects to build the Client and Server applications. The requirements for our sub-projects are the same so we'll do all the setup in the subprojects block of the root project, which applies to all sub-projects. Edit the generated build.gradle file to look like the one below:\n\n```gradle\n...\n\"Class-Path\": configurations.runtimeClasspath.resolve().collect { it.toURI() }.join(' ')\n...\n```\n\nWe must also edit the generated settings.gradle to define our sub-projects:\n\n```gradle\nrootProject.name = 'ice'\ninclude 'client'\ninclude 'server'\n```\n\n## Compiling the client and server ⭐️\n\n```bash\n./gradlew build\n```\n\n ## Testing our distributed app 🐙\n\n- At this point, we wont see anything because the server simply waits for a client to connect to it. We run the client in a different window:\n    ![client](./assets/client.png)\n\n- To run client and server, we first start the server in a separate window:\n    ![server](./assets/server.png)\n\nThe client runs and exits without producing any output; however, in the server window, we see the \"Hello World!\" that is produced by the printer. To get rid of the server, we interrupt it on the command line for now. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falejandro945%2Fice-introduction","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falejandro945%2Fice-introduction","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falejandro945%2Fice-introduction/lists"}