{"id":20504547,"url":"https://github.com/yupiik/fusion","last_synced_at":"2026-03-07T18:09:10.391Z","repository":{"id":145979933,"uuid":"578282059","full_name":"yupiik/fusion","owner":"yupiik","description":"Yupiik Fusion is a modern, high-performance web framework built on top of GraalVM. The framework is designed to provide a streamlined and efficient way to develop web applications.","archived":false,"fork":false,"pushed_at":"2026-02-24T10:12:15.000Z","size":2728,"stargazers_count":15,"open_issues_count":2,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-03-05T10:47:17.145Z","etag":null,"topics":["cloud","framework","graal-native","java","kubernetes","lightweight"],"latest_commit_sha":null,"homepage":"https://www.yupiik.io/fusion","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yupiik.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["yupiik"]}},"created_at":"2022-12-14T17:25:29.000Z","updated_at":"2026-02-24T10:12:20.000Z","dependencies_parsed_at":"2023-11-11T08:22:07.535Z","dependency_job_id":"e4a3e78a-111b-4f63-8152-d3217e8d2bda","html_url":"https://github.com/yupiik/fusion","commit_stats":null,"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/yupiik/fusion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yupiik%2Ffusion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yupiik%2Ffusion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yupiik%2Ffusion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yupiik%2Ffusion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yupiik","download_url":"https://codeload.github.com/yupiik/fusion/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yupiik%2Ffusion/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30127361,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T12:40:50.676Z","status":"ssl_error","status_checked_at":"2026-03-05T12:39:32.209Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["cloud","framework","graal-native","java","kubernetes","lightweight"],"created_at":"2024-11-15T19:38:38.465Z","updated_at":"2026-03-07T18:09:10.357Z","avatar_url":"https://github.com/yupiik.png","language":"Java","funding_links":["https://github.com/sponsors/yupiik"],"categories":[],"sub_categories":[],"readme":"= Yupiik Fusion Framework\n\nimage:https://img.shields.io/maven-central/v/io.yupiik.fusion/fusion?color=00b2ef\u0026label=Last%20Release\u0026logoColor=00b2ef\u0026logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAACAAAAAqCAYAAADS4VmSAAAAAXNSR0IArs4c6QAABGdJREFUWEedmF2I3FQUx%2F9nZrYzq7ttMtuK32B90WpFEbtUW2T7UqqbjIgM%2BKQP%2BmAfBUEFP0H7oo%2BiIgg%2BqRUqk%2BwWRXTFj9UWoVIp7UN1H9QitTvJMtpOd3dydDI7k9zk3syd5C25557zO1%2F3I4S8z3xzJzp0MpweBDfioanf86iiPJPCOY7HwlzbzKUr1yQ4XgAgOZdhm4VRHcoLIHrft5ojCqMDiKF%2FGlQkcOfNgecjQowGcKS5ByX6NmUsDrXOe%2FFw9TvdVIwGEDdUNiawn%2F4NDR0%2BP4HKWCtPFPQBXP8EmO9UGonDEf0My7hLJwr6AHEDqjzryCSo9ACEtuM%2FYVevl3rneH8D2LoxptWWugBR2w2r8hGjMBxAaDt6BrbxRmZuHf81gJ%2FXLchsgEbzQRDN6SobyMWhmWdRq86roLMB4ooKVMWs4Q0Uuf4jYP4kfKfONKytxwdjR1vbsL5%2BXgdcDeD6J8G8U6vtukLJ2hDb8hdYxh2yKKgBsorJ9QJwYjMiMKzEZqRRkHKAhrcKwliPmC7ANrYN6A%2Bf2oTKtZelOW1%2FUUK93oml6RKYK%2BE7Yw01c1NyXhpggSto%2BZe0Qh%2FgMQBFFPC%2BlvykMY4Zasch0gBC4RUfx%2BzmDwYT5lem0Ql%2BTBkTWjW4HfbUqVhHvALgRRWgCDDXmkGw%2FpWWN%2BXLE9h%2FdW8z%2BtQzUETUIVkFWSjtw%2BzkQt%2BGCBD3pG2UUKcon43mCRBpbkZYhGXeF9UNj6PiX5Q5FgE4zUWAdmt5n2czEtLEP8Cu3huWeCxX6vVenHwadnWHtAsc7zcAN43iRA9gmAGNftZ05A8A18UBCQtcQstf06JmfhS16kdS7%2FsfHf9ZgA9p6Zs0xkjwngsHUNvyWeTNch0ofKxUpiIRNiO6BzXjp4Fow38OxK9HXZC8YDAfRK36dio1JaOCB0i%2BAiZBjvx1FcbKn8MyxWOZ670MxkviQuR4vwLYnnKG2QeRsfG9A9ssZYY%2Ba9BpXgRoPCVCWOwVoXvhFnDxtFLHsFOQTirS1rfDNpbSS3HD64Agv2JR8VZYm88MKcJ9AH8plWEEqJlFMQVq%2Bq8B3K8Y%2Fga2KY45XrfQ7s6Ea%2F9zBeo3RBud5IIJzPmmePJZ2QUOjuXKf6GzA0FpL8DvqjpJTIG7%2FCq48EIoTPQULOMdwXCyY%2BRU6eO4cDrCDCyzG92eGaUBWeE5%2FlsAH8yMBvMh1KrRqbgvrFhNIwDXOwfGNdJQOZ4PYMtIaWAso2b2LynJHxrHYZvTsQgwwfG7Px16T9f7bi0E3FQbDZ4ECu%2BF490lmuhDpWz%2FIiuJgmQzoiWAox1N1LoK2yyHn5zlJ2IA0dnf9dfArFq0ugeYK%2BOOSgAkfhBcWKYt1osCoC%2Fk%2BsfAvCszbbZJQwCC3bCnojNgXJsqAkmLzsoBIDgqBRkAuP5ZMN88EGqfK6N%2B22omvS5AX8nCUgUtI74IfQ%2Fb3DP8cqqiGBVAoSc%2FQFiIG%2F8K825W%2F%2Bv4D2sg4qMfRFPFAAAAAElFTkSuQmCC[float=\"right\"]\nimage:https://github.com/yupiik/fusion/actions/workflows/maven.yml/badge.svg?branch=master[Github CI,float=\"right\"]\nimage:https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjvm-repo-rebuild%2Freproducible-central%2Fmaster%2Fcontent%2Fio%2Fyupiik%2Ffusion%2Fbadge.json[Reproducible Builds,float=\"right\",link=https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/io/yupiik/fusion/README.md]\nimage:https://img.shields.io/github/license/yupiik/bundlebee.svg[License]\n\n**Yupiik Fusion** is a modern, lightweight Java framework designed to quickly build efficient, modular, and maintainable applications with ease built on top of GraalVM. Leveraging powerful features like dependency injection, easy RESTful API creation, and seamless JSON-RPC support, Fusion streamlines development and boosts developer productivity.\n\n== 🚀 Key Features\n\n- ✅ **Simplicity**: Minimum magic needed to make your development workflow smooth and nice.\n- ✅ **Modularity**: Lightweight and modular architecture that lets you choose exactly what your application needs.\n- ✅ **Dependency Injection**: Intuitive and reflectionless DI model that simplifies component management and improves maintainability.\n- ✅ **JSON-RPC \u0026 REST API**: Effortlessly build JSON-RPC or REST APIs for modern web applications.\n- ✅ **CLI Application Support**: Quickly create robust and maintainable Command-Line Interface (CLI) applications.\n- ✅ **Cloud-Native Ready**: Ideal for containerized applications running in Kubernetes or cloud environments.\n- ✅ **Native**: Built on top of GraalVM for easy native build.\n- ✅ **Efficient Resource Handling**: Supports streaming and low memory usage for high-performance scenarios.\n\n== 🔧 Getting Started\n\nTo quickly get started with Yupiik Fusion, add the core dependencies to your Maven project:\n\n[source,xml]\n----\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eio.yupiik.fusion\u003c/groupId\u003e\n        \u003cartifactId\u003efusion-build-api\u003c/artifactId\u003e\n        \u003cversion\u003e${fusion.version}\u003c/version\u003e\n        \u003cscope\u003eprovided\u003c/scope\u003e\n    \u003c/dependency\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eio.yupiik.fusion\u003c/groupId\u003e\n        \u003cartifactId\u003efusion-processor\u003c/artifactId\u003e\n        \u003cversion\u003e${fusion.version}\u003c/version\u003e\n        \u003cscope\u003eprovided\u003c/scope\u003e\n    \u003c/dependency\u003e\n\n    \u003cdependency\u003e\n        \u003cgroupId\u003eio.yupiik.fusion\u003c/groupId\u003e\n        \u003cartifactId\u003efusion-api\u003c/artifactId\u003e\n        \u003cversion\u003e${fusion.version}\u003c/version\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n----\n\n== 🚦 Quickstart Example\n\n=== Creating a Simple REST API\n\nAdd Json and HttpServer dependencies:\n\n[source,xml]\n----\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.yupiik.fusion\u003c/groupId\u003e\n    \u003cartifactId\u003efusion-json\u003c/artifactId\u003e\n    \u003cversion\u003e${fusion.version}\u003c/version\u003e\n\u003c/dependency\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.yupiik.fusion\u003c/groupId\u003e\n    \u003cartifactId\u003efusion-http-server\u003c/artifactId\u003e\n    \u003cversion\u003e${fusion.version}\u003c/version\u003e\n\u003c/dependency\u003e\n----\n\nCreate REST Endpoint:\n\n[source,java]\n----\nimport io.yupiik.fusion.framework.api.scope.ApplicationScoped;\nimport io.yupiik.fusion.framework.build.api.http.HttpMatcher;\nimport io.yupiik.fusion.http.server.api.HttpException;\nimport io.yupiik.fusion.http.server.api.Request;\nimport io.yupiik.fusion.http.server.api.Response;\nimport io.yupiik.fusion.json.JsonMapper;\n\n@ApplicationScoped\npublic class ProductEndpoint {\n\n    private final ProductService productService;\n    private final JsonMapper jsonMapper;\n\n    public ProductEndpoint(final JsonMapper jsonMapper, final ProductService productService) {\n        this.jsonMapper = jsonMapper;\n        this.productService = productService;\n    }\n\n    @HttpMatcher(methods = \"GET\", path = \"/product\", pathMatching = HttpMatcher.PathMatching.EXACT)\n    public List\u003cProduct\u003e findAllProduct(final Request request) {\n        return productService.findProducts();\n    }\n\n    @HttpMatcher(methods = \"GET\", path = \"/product/\", pathMatching = HttpMatcher.PathMatching.STARTS_WITH)\n    public Product findProduct(final Request request) {\n        final var id = request.path().split(\"/\")[2];\n        return productService.findProduct(id);\n    }\n\n    @HttpMatcher(methods = \"POST\", path = \"/order\", pathMatching = HttpMatcher.PathMatching.EXACT)\n    public Response createOrder(final Request request, final Order order) { // custom response crafting\n        return Response.of()\n                .status(201)\n                .header(\"content-type\", \"application/json\")\n                .body(jsonMapper.toString(orderService.createOrder(order)))\n                .build();\n    }\n}\n----\n\n=== JSON-RPC Support\nEasily create JSON-RPC APIs.\n\nAdd dependencies:\n\n[source,xml]\n----\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.yupiik.fusion\u003c/groupId\u003e\n    \u003cartifactId\u003efusion-json\u003c/artifactId\u003e\n    \u003cversion\u003e${fusion.version}\u003c/version\u003e\n\u003c/dependency\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.yupiik.fusion\u003c/groupId\u003e\n    \u003cartifactId\u003efusion-jsonrpc\u003c/artifactId\u003e\n    \u003cversion\u003e${fusion.version}\u003c/version\u003e\n\u003c/dependency\u003e\n----\n\n[source,java]\n----\nimport io.yupiik.fusion.framework.api.scope.ApplicationScoped;\nimport io.yupiik.fusion.framework.build.api.jsonrpc.JsonRpc;\nimport io.yupiik.fusion.http.server.api.Request;\nimport io.yupiik.fusion.json.JsonMapper;\nimport java.util.Map;\n\n@ApplicationScoped\npublic class JsonRpcEndpoint {\n    private final ProductService productService;\n\n    public JsonRpcEndpoint(final ProductService productService) {\n        this.productService = productService;\n    }\n\n    @JsonRpc(value = \"fusion.examples.product.findAll\", documentation = \"Fetch all product available\")\n    public List\u003cProduct\u003e findAllProduct(final Request request) {\n        return productService.findProducts();\n    }\n\n    @JsonRpc(value = \"fusion.examples.product.findById\", documentation = \"Find a product by id\")\n    public Product findProduct(final Request request, final String id) {\n        return productService.findProduct(id);\n    }\n}\n----\n\nThe full examples can be found on the GitHub project:\n\nhttps://github.com/yupiik/fusion-examples\n\n== 🧩 Extensions\n\nFusion provide useful extensions:\n\n- https://www.yupiik.io/fusion/fusion/json.html[JSON]\n- https://www.yupiik.io/fusion/fusion/jwt.html[JWT validation]\n- https://www.yupiik.io/fusion/fusion/http-server.html[HTTP Server]\n- https://www.yupiik.io/fusion/fusion/http-client.html[HTTP Client]\n- https://www.yupiik.io/fusion/fusion/observability.html[Observability]\n- https://www.yupiik.io/fusion/fusion/handlebars.html[Handlebars]\n- https://www.yupiik.io/fusion/fusion/persistence.html[Persistence]\n- https://www.yupiik.io/fusion/fusion/kubernetes-operator.html[Kubernetes Operator Base]\n\n== 📖 Documentation\n\nComprehensive documentation is available at:\n\n🌐 https://yupiik.github.io/fusion/\n\n== 🖥️ Contributing\n\nWe warmly welcome contributions!\n\n- Fork the repository\n- Submit your enhancements via pull requests\n- Create https://github.com/yupiik/fusion/issues[issues]\n- Open https://github.com/yupiik/fusion/discussions[discussions]\n\n=== Build\n\nPre-requisite: Apache Maven \u003e= 3.8 and Java \u003e= 17.\n\n== 📜 License\n\nYupiik Fusion is released under the Apache License, Version 2.0. See the LICENSE file for more details.\n\n== ©️ Copyright\nCopyright © 2025 Yupiik.\n\n🌟 *Simplify your Java applications with Yupiik Fusion.* 🌟\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyupiik%2Ffusion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyupiik%2Ffusion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyupiik%2Ffusion/lists"}