{"id":21469281,"url":"https://github.com/augmentedlogic/flere-service","last_synced_at":"2025-06-17T03:03:23.119Z","repository":{"id":187210024,"uuid":"676099114","full_name":"augmentedlogic/flere-service","owner":"augmentedlogic","description":"Tiny java http server for microservices","archived":false,"fork":false,"pushed_at":"2023-08-09T16:54:44.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-17T06:35:32.780Z","etag":null,"topics":["http","http-server","java","microservice"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/augmentedlogic.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-08-08T12:33:23.000Z","updated_at":"2024-01-27T13:51:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"82124ba5-79ec-4648-802b-6722ae77d37f","html_url":"https://github.com/augmentedlogic/flere-service","commit_stats":null,"previous_names":["augmentedlogic/flere-service"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/augmentedlogic/flere-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augmentedlogic%2Fflere-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augmentedlogic%2Fflere-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augmentedlogic%2Fflere-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augmentedlogic%2Fflere-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/augmentedlogic","download_url":"https://codeload.github.com/augmentedlogic/flere-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augmentedlogic%2Fflere-service/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260281568,"owners_count":22985626,"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":["http","http-server","java","microservice"],"created_at":"2024-11-23T09:14:58.863Z","updated_at":"2025-06-17T03:03:23.090Z","avatar_url":"https://github.com/augmentedlogic.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flere-service, an embedded java HTTP nano service framework\n\nflere-service is an embedded HTTP service which can be used to build small services\nwhich communicate over HTTP.\n\nThis service is not intended to serve websites and does not implement all HTTP features.\n\n## What flere-service can do\n\n* start an embedded http service with a few lines of code\n\n* receive parameters from GET or POST requests, or raw POST data\n\n\n## Known shortcomings\n\n* flere-service does not handle HTTP multipart request\t\n\n* does not implement TLS sockets. If you require communication over tls, use a proxy like nginx.\n\n* no support for cookie handling, if you require cookies you will need to set cookie headers manually\n\n\n## Also, what flere-service is not\n\n* flere-service is not a full-fledged server framework like jetty, tomcat or glassfish\n\n* likely you do not want to implement a complex website with flere-service\n\n\n## Example Usage\n\n```\nimport com.augmentedlogic.flere.service.*;\n\nclass Test\n{\n    public static void main( String[] args )\n    {\n        FlereService ns = new FlereService(\"localhost\", 8080);\n                     ns.addHandler(new TestHandler());\n                     try {\n                         ns.start();\n                     } catch(Exception e) {\n                         System.out.println(e);\n                     }\n    }\n\n}\n```\n\n\n\n```\nimport com.augmentedlogic.flere.service.*;\n\n\npublic class TestHandler implements StandardHandler\n{\n\n   public HttpResponse handle(HttpRequest request)\n   {\n      HttpResponse response = new HttpResponse();\n                   response.setBody(\"hello world from the test handler!\");\n\n      return response;\n   }\n\n}\n```\n\n\n```\nimport com.augmentedlogic.flere.service.*;\n\n\npublic class TestHandler implements StandardHandler\n{\n\n   public HttpResponse handle(HttpRequest request)\n   {\n      HttpResponse response = new HttpResponse();\n\n                   // get the request method like \"GET\", \"POST\" etc\n                   String http_method = request.getMethod();\n\n                   // get the request path such as \"/api/json\"\n                   String path = request.getPath();  \n\n                   // get the URL query string\n                   String query = request.getQuery();\n\n                   // fetching a GET or POST parameter\n                   String param = request.getParameter(\"hello\");\n\n\n                   // fetching a GET or POST parameter as Integer, setting a default\n                   // value of 2 if parameter is not set\n\n                   String string_param = request.getString(\"s\", \"hello\");\n                   Integer int_param = request.getInteger(\"i\", 2);\n                   Double double_param = request.getDouble(\"d\", 2.0);\n\n                   // get part of the path, e.g. if the request is /product/GDFJSH\n                   String product = request.getPathElement(2);\n\n                   // fetching the request body\n                   String postdata = request.getPostdata();\n\n                   // get a request header\n                   String user_agent = request.getHeader(\"user-agent\");\n\n                   // if a basic auth header has been sent\n                   String user = request.getBasicAuthUser();\n                   String password = request.getBasicAuthPassword();\n\n                   // set a custom response header\n                   response.addHeader(\"Pragma\", \"no-cache\");\n\n                   // we respond with application/json and 201 created\n                   response.setContentType(\"application/json\");\n                   response.setHttpStatus(HttpStatus.CREATED);\n                   response.setBody(\"['hello', 'world']\");\n\n      return response;\n   }\n\n}\n```\n\n### Routing/Multiple Handlers\n\n\n```\nimport com.augmentedlogic.flere.service.*;\n\nclass Test\n{\n    public static void main( String[] args )\n    {\n        FlereService ns = new FlereService(\"localhost\", 8080);\n                     ns.addHandler(\"/test\", new TestHandler());\n                     ns.addHandler(\"/api/json\", new ApiHandler());\n                     ns.addHandler(\"/\", new TestHandler());\n                     ns.setDebug(false);\n                     ns.setBacklog(4096);\n                     try {\n                         ns.start();\n                     } catch(Exception e) {\n                         System.out.println(e);\n                     }\n    }\n\n}\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faugmentedlogic%2Fflere-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faugmentedlogic%2Fflere-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faugmentedlogic%2Fflere-service/lists"}