{"id":27943530,"url":"https://github.com/ethanngit/simplefaas","last_synced_at":"2025-05-07T12:12:20.746Z","repository":{"id":276533802,"uuid":"929549063","full_name":"EthanNgit/SimpleFaas","owner":"EthanNgit","description":"Simple functions as a service engine.","archived":false,"fork":false,"pushed_at":"2025-02-12T17:23:00.000Z","size":49,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T12:12:16.180Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","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/EthanNgit.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":"2025-02-08T19:58:56.000Z","updated_at":"2025-02-12T17:23:03.000Z","dependencies_parsed_at":"2025-02-14T11:00:23.470Z","dependency_job_id":null,"html_url":"https://github.com/EthanNgit/SimpleFaas","commit_stats":null,"previous_names":["ethanngit/simple-faas","ethanngit/simplefaas"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EthanNgit%2FSimpleFaas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EthanNgit%2FSimpleFaas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EthanNgit%2FSimpleFaas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EthanNgit%2FSimpleFaas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EthanNgit","download_url":"https://codeload.github.com/EthanNgit/SimpleFaas/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252873897,"owners_count":21817715,"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":"2025-05-07T12:12:20.198Z","updated_at":"2025-05-07T12:12:20.739Z","avatar_url":"https://github.com/EthanNgit.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FaaS (Functions as a Service) Platform\n\nA lightweight, Docker-based Functions as a Service platform that allows you to dynamically create and invoke Python functions.\n\n## Features\n\n✅ Dynamic function creation and registration  \n✅ Stateless function invocation  \n✅ Persistent function storage  \n✅ Supports warm starts  \n✅ Automatic container lifecycle management  \n\n## Limitations\n\n⚠️ No code execution security measures  \n⚠️ No authentication/authorization system  \n⚠️ Python-only support  \n⚠️ Single instance deployment (no load balancing)  \n⚠️ No api to delete functions  \n\n## Prerequisites\n\n- Docker\n- Docker Compose\n- cURL (for API examples)\n\n## Getting Started\n\n1. Ensure Docker is running on your system\n\n2. Build the base image:\n```bash\ndocker build -t faas-base-image -f ./base/Dockerfile.faas-base ./base\n```\n\n3. Build and start the services:\n```bash\ndocker compose build\ndocker compose up -d\n```\n\n## Usage\n\n### Registering a Function\n\n```bash\ncurl -X POST -H \"Content-Type: application/json\" -d '{\n    \"name\": \"hello\",\n    \"code\": \"def user_function(name): return f\\\"Hello, {name}!\\\"\"\n}' http://localhost:8080/register\n```\n\nExpected response:\n```json\n{\n    \"result\": \"hello-1\"\n}\n```\n\n### Invoking a Function\n\n```bash\ncurl -X POST -H \"Content-Type: application/json\" -d '{\n    \"name\": \"hello-1\",\n    \"params\": {\n        \"name\": \"World\"\n    }\n}' http://localhost:8080/invoke\n```\n\nExpected response:\n```json\n{\n    \"result\": \"Hello, World!\"\n}\n```\n\n## API Reference\n\n### POST /register\nRegisters a new function in the system.\n\n**Request Body:**\n- `name` (string): Function name\n- `code` (string): Python function code\n\n**Response:**\n- `result` (string): Unique function identifier\n\n### POST /invoke\nInvokes a registered function.\n\n**Request Body:**\n- `name` (string): Function identifier\n- `params` (object): Function parameters\n\n**Response:**\n- `result` (any): Function execution result\n\n## ENV Reference\n- `CLEANUP_INTERVAL` (#m, eg 1m): polls the running containers every # minutes\n- `DELETE_AFTER` (#m, eg 1m): if a container was ran more than # minutes ago, shut it down\n\n## Contributing\n\nFeel free to open issues and pull requests to help improve this project.\n\n## License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethanngit%2Fsimplefaas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fethanngit%2Fsimplefaas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethanngit%2Fsimplefaas/lists"}