{"id":23517098,"url":"https://github.com/mnlipp/jdrupes-httpcodec","last_synced_at":"2025-05-13T23:16:51.645Z","repository":{"id":56832074,"uuid":"75951836","full_name":"mnlipp/jdrupes-httpcodec","owner":"mnlipp","description":"Non-blocking HTTP codec without any dependencies","archived":false,"fork":false,"pushed_at":"2024-05-08T18:58:14.000Z","size":10790,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-25T15:16:27.408Z","etag":null,"topics":["codec","decoder","encoder","http","java","non-blocking","websocket"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mnlipp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2016-12-08T15:47:55.000Z","updated_at":"2024-05-08T18:55:10.000Z","dependencies_parsed_at":"2024-05-12T00:00:56.864Z","dependency_job_id":null,"html_url":"https://github.com/mnlipp/jdrupes-httpcodec","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mnlipp%2Fjdrupes-httpcodec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mnlipp%2Fjdrupes-httpcodec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mnlipp%2Fjdrupes-httpcodec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mnlipp%2Fjdrupes-httpcodec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mnlipp","download_url":"https://codeload.github.com/mnlipp/jdrupes-httpcodec/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239207437,"owners_count":19599963,"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":["codec","decoder","encoder","http","java","non-blocking","websocket"],"created_at":"2024-12-25T15:16:31.254Z","updated_at":"2025-02-16T22:38:03.730Z","avatar_url":"https://github.com/mnlipp.png","language":"Java","readme":"JDrupes non-blocking HTTP Codec\n===============================\n\n[![Build Status](https://github.com/mnlipp/jdrupes-httpcodec/actions/workflows/main.yml/badge.svg)](https://github.com/mnlipp/jdrupes-httpcodec/actions) \n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/0d9e648d1d904ec6a1f0ca713ca30c5c)](https://www.codacy.com/app/mnlipp/jdrupes-httpcodec?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=mnlipp/jdrupes-httpcodec\u0026amp;utm_campaign=Badge_Grade)\n[![Code Climate](https://lima.codeclimate.com/github/mnlipp/jdrupes-httpcodec/badges/gpa.svg)](https://lima.codeclimate.com/github/mnlipp/jdrupes-httpcodec)\n[![Release](https://jitpack.io/v/mnlipp/jdrupes-httpcodec.svg)](https://jitpack.io/#mnlipp/jdrupes-httpcodec)\n[![Maven Central](https://img.shields.io/maven-central/v/org.jdrupes.httpcodec/httpcodec.svg)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.jdrupes.httpcodec%22)\n[![Javadocs](https://www.javadoc.io/badge/org.jdrupes.httpcodec/httpcodec.svg)](https://www.javadoc.io/doc/org.jdrupes.httpcodec/httpcodec)\n\nThe goal of this package is to provide easy to use HTTP \nencoders and decoders for non-blocking I/O\nthat use Java `Buffer`s for handling the data.\n\nI'm well aware that such libraries already exist (searching easily reveals\nimplementations such as the \n[Apache Codecs](https://hc.apache.org/httpcomponents-core-ga/httpcore-nio/apidocs/org/apache/http/impl/nio/codecs/package-summary.html) \nor the \n[Netty Codes](http://netty.io/4.0/api/io/netty/handler/codec/http/package-summary.html)).\nHowever, I found all of them to be too closely integrated with their respective\nframeworks, which didn't go well with my intention to write my own\n[event driven framework](http://mnlipp.github.io/jgrapes/). \nAn implementation that comes very close to what I needed is \n[HTTP Kit](https://github.com/http-kit/http-kit), which has, however,\ndependencies on Clojure, which prohibit its usage for my purpose.\n\nThis library requires Java 17 SE.\nBinaries are currently made available at maven central.\n\n```gradle\nrepositories {\n\tmavenCentral()\n}\n\ndependencies {\n\tcompile 'org.jdrupes.httpcodec:httpcodec:X.Y.Z'\n}\n```\n\n(See badge above for the latest version.) \n\nThe best starting point for using the library is to have a look at the Javadoc (either \n[properly versioned](https://www.javadoc.io/doc/org.jdrupes.httpcodec/httpcodec/)\nor [close to master](https://mnlipp.github.io/jdrupes-httpcodec/javadoc/index.html)).\nMake sure to read the \"Overview\" section first. It provides a good overview of\nthe library's architecture. In addition, have a look  at the source code in the \n[`demo`](https://github.com/mnlipp/jdrupes-httpcodec/tree/master/demo/org/jdrupes/httpcodec/demo) folder.\n\nContributions and bug reports are welcome. Please provide them as\nGitHub issues.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmnlipp%2Fjdrupes-httpcodec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmnlipp%2Fjdrupes-httpcodec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmnlipp%2Fjdrupes-httpcodec/lists"}