{"id":13599047,"url":"https://github.com/bakercp/ofxHTTP","last_synced_at":"2025-04-10T12:31:17.497Z","repository":{"id":6639934,"uuid":"7884047","full_name":"bakercp/ofxHTTP","owner":"bakercp","description":"A suite of HTTP tools, including clients and servers for openFrameworks.","archived":false,"fork":false,"pushed_at":"2023-07-31T17:22:24.000Z","size":5030,"stargazers_count":112,"open_issues_count":18,"forks_count":39,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-01T20:24:59.687Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","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/bakercp.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}},"created_at":"2013-01-29T02:53:41.000Z","updated_at":"2025-02-19T02:29:04.000Z","dependencies_parsed_at":"2024-01-16T22:21:00.607Z","dependency_job_id":"4ebdec48-7827-4770-8184-1f4fd71b1e67","html_url":"https://github.com/bakercp/ofxHTTP","commit_stats":{"total_commits":537,"total_committers":6,"mean_commits":89.5,"dds":"0.014897579143389184","last_synced_commit":"057212876235486aae25256a623edf38282f852e"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakercp%2FofxHTTP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakercp%2FofxHTTP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakercp%2FofxHTTP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakercp%2FofxHTTP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bakercp","download_url":"https://codeload.github.com/bakercp/ofxHTTP/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248217126,"owners_count":21066633,"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":[],"created_at":"2024-08-01T17:00:59.264Z","updated_at":"2025-04-10T12:31:16.440Z","avatar_url":"https://github.com/bakercp.png","language":"C++","readme":"# ofxHTTP\n\n## Description\n\nAn [openFrameworks](http://openframeworks.cc) addon for custom HTTP clients and servers.\n\n## Features\n\nThis is the second development release.  The web socket examples have been removed and users are encouraged to use the [ofxJSONRPC](https://github.com/bakercp/ofxJSONRPC) examples instead.  They are much more useful.\n\n### Clients\n-   Clients work best with up-to-date CA Certificate bundles. A fairly recent example is included in the `ofxHTTP` client examples.  For up-to-date certificates (or if you just want to generate your own for security reasons), check out this page for more info: [http://curl.haxx.se/docs/caextract.html](http://curl.haxx.se/docs/caextract.html).\n-   Certificate bundles are managed by [ofxSSLManager](https://github.com/bakercp/ofxSSLManager).\n\n### Servers\nIf your server serves up files that are downloaded by the browser rather than displayed, make sure you have a mime.types file defined in your data folder [like this](https://github.com/bakercp/ofxHTTP/tree/master/example_basic_file_server/bin/data/media)\n\nAll web servers can be run from the cloud.  To run the examples, download openFrameworks onto the server.  Usually you will download a Linux64 build and will do this over ssh while connected to your web host.  Then build the core library according to the linux tutorials.  Then make sure that your security settings (\"Security Groups\" on Amazon EC2) allow incoming connections on the your chosen server ports (the default is 8080).  So, for port 8080, you would allow inbound connections from `8080\t0.0.0.0/0`.  Then launch the server with `make \u0026\u0026 make run` to build and run it the server.  It is up to you to figure out the best way to enable the server at system startup and keep the server running if there are any crashes.\n\n`ofxHTTP` Servers can also be proxied securely through NGINX. For example, an `ofxHTTP` server running on a cloud server with [Let's Encrypt](https://letsencrypt.org/) via [CERTBOT](https://certbot.eff.org/) might run with an NGINX configuration like this:\n\n```\nserver {\n        server_name server.christopherbaker.net;\n        # Make sure to increase the upload size for files about 2MB.\n        client_max_body_size 100M;\n        location / {\n                # The local port to proxy on.\n                # This is the host:port that the ofxHTTP server is running on.\n                # You configure this port in ofApp::setup() { ... }.\n                proxy_pass http://127.0.0.1:8197;\n\n                # Proxy settings that will allow websockets.\n                proxy_http_version 1.1;\n                proxy_set_header Upgrade $http_upgrade;\n                proxy_set_header Connection \"Upgrade\";\n        }\n\n      # Everything below was added by Certbot https://certbot.eff.org/\n      listen [::]:443 ssl; # managed by Certbot\n      listen 443 ssl; # managed by Certbot\n      ssl_certificate /etc/letsencrypt/live/server.christopherbaker.net/fullchain.pem; # managed by Certbot\n      ssl_certificate_key /etc/letsencrypt/live/server.christopherbaker.net/privkey.pem; # managed by Certbot\n      include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot\n      ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot\n\n}\n\n\nserver {\n      if ($host = server.christopherbaker.net) {\n          return 301 https://$host$request_uri;\n      } # managed by Certbot\n\n\n      listen 80;\n      listen [::]:80;\n\n      server_name server.christopherbaker.net;\n      return 404; # managed by Certbot\n}\n```\n\nTheoretically an `ofxHTTP` server could be configured for SSL encryption by setting up a server context with `ofxSSLManager`, but an NGINX proxy is likely simpler.\n\n## Getting Started\n\nTo get started, generate the example project files using the openFrameworks [Project Generator](http://openframeworks.cc/learning/01_basics/how_to_add_addon_to_project/).\n\n## Documentation\n\nAPI documentation can be found [here](https://bakercp.github.io/ofxHTTP/index.html).\n\n## Build Status\n\nLinux, macOS [![Build Status](https://travis-ci.org/bakercp/ofxHTTP.svg?branch=master)](https://travis-ci.org/bakercp/ofxHTTP)\n\nVisual Studio, MSYS [![Build status](https://ci.appveyor.com/api/projects/status/ltsg7y588u4gw9o7/branch/master?svg=true)](https://ci.appveyor.com/project/bakercp/ofxhttp/branch/master)\n\n## Compatibility\n\n### Branches\n\nThe `stable` branch of this repository is meant to be compatible with the openFrameworks [stable branch](https://github.com/openframeworks/openFrameworks/tree/stable), which corresponds to the latest official openFrameworks release.\n\nThe `master` branch of this repository is meant to be compatible with the openFrameworks [master branch](https://github.com/openframeworks/openFrameworks/tree/master).\n\nSome past openFrameworks releases are supported via [releases](../../releases/), but only the [stable branch](../../tree/stable) and the [master branch](../../tree/master) are actively supported.\n\n### Requirements\n-   ofxPoco (included with openFrameworks)\n-   [ofxIO](https://github.com/bakercp/ofxIO)\n-   [ofxMediaType](https://github.com/bakercp/ofxMediaType)\n-   [ofxSSLManager](https://github.com/bakercp/ofxSSLManager)\n-   [ofxNetworkUtils](https://github.com/bakercp/ofxNetworkUtils)\n\nSome examples may require:\n\n-   [ofxJSON](https://github.com/bakercp/ofxJSON)\n\n## Versioning\n\nThis project uses [Semantic Versioning](http://semver.org/), although strict adherence will only come into effect at version 1.0.0.\n\n## Licensing\n\nSee [LICENSE.md](LICENSE.md).\n\n## Contributing\n\nPull Requests are always welcome, so if you make any improvements please feel free to float them back upstream :)\n\n1.  Fork this repository.\n2.  Create your feature branch (`git checkout -b my-new-feature`).\n3.  Commit your changes (`git commit -am 'Add some feature'`).\n4.  Push to the branch (`git push origin my-new-feature`).\n5.  Create new Pull Request.\n","funding_links":[],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbakercp%2FofxHTTP","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbakercp%2FofxHTTP","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbakercp%2FofxHTTP/lists"}