{"id":20812540,"url":"https://github.com/superstreamlabs/memphis-dev-functions","last_synced_at":"2026-04-22T11:02:45.471Z","repository":{"id":196003098,"uuid":"689431659","full_name":"superstreamlabs/memphis-dev-functions","owner":"superstreamlabs","description":"A centralized repository of ready-to-use Memphis Functions","archived":false,"fork":false,"pushed_at":"2024-01-21T12:35:08.000Z","size":125,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-26T22:49:02.039Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/superstreamlabs.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-09-09T19:32:27.000Z","updated_at":"2023-11-29T08:28:41.000Z","dependencies_parsed_at":"2023-09-21T00:42:17.533Z","dependency_job_id":"8f6cf830-dc2f-4de4-8267-5b27c5ae4604","html_url":"https://github.com/superstreamlabs/memphis-dev-functions","commit_stats":null,"previous_names":["memphisdev/memphis-dev-functions","superstreamlabs/memphis-dev-functions"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/superstreamlabs/memphis-dev-functions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/superstreamlabs%2Fmemphis-dev-functions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/superstreamlabs%2Fmemphis-dev-functions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/superstreamlabs%2Fmemphis-dev-functions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/superstreamlabs%2Fmemphis-dev-functions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/superstreamlabs","download_url":"https://codeload.github.com/superstreamlabs/memphis-dev-functions/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/superstreamlabs%2Fmemphis-dev-functions/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32132973,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T08:34:57.708Z","status":"ssl_error","status_checked_at":"2026-04-22T08:34:55.583Z","response_time":58,"last_error":"SSL_read: 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":[],"created_at":"2024-11-17T20:55:22.224Z","updated_at":"2026-04-22T11:02:40.461Z","avatar_url":"https://github.com/superstreamlabs.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![image](https://github.com/memphisdev/memphis-dev-functions/assets/70286779/bf9e6907-d060-44db-abbb-42efa4b630b0)\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://memphis.dev/discord\"\u003e\u003cimg src=\"https://img.shields.io/discord/963333392844328961?color=6557ff\u0026label=discord\" alt=\"Discord\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/memphisdev/memphis/issues?q=is%3Aissue+is%3Aclosed\"\u003e\u003cimg src=\"https://img.shields.io/github/issues-closed/memphisdev/memphis?color=6557ff\"\u003e\u003c/a\u003e \n  \u003cimg src=\"https://img.shields.io/npm/dw/memphis-dev?color=ffc633\u0026label=installations\"\u003e\n\u003ca href=\"https://github.com/memphisdev/memphis/blob/master/CODE_OF_CONDUCT.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/Code%20of%20Conduct-v1.0-ff69b4.svg?color=ffc633\" alt=\"Code Of Conduct\"\u003e\u003c/a\u003e \n\u003cimg alt=\"GitHub release (latest by date)\" src=\"https://img.shields.io/github/v/release/memphisdev/memphis?color=61dfc6\"\u003e\n\u003cimg src=\"https://img.shields.io/github/last-commit/memphisdev/memphis?color=61dfc6\u0026label=last%20commit\"\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \n  \u003cimg width=\"200\" alt=\"CNCF Silver Member\" src=\"https://www.cncf.io/wp-content/uploads/2022/07/cncf-white-logo.svg#gh-dark-mode-only\"\u003e\n  \n\u003c/div\u003e\n \n \u003cb\u003e\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://memphis.dev/pricing/\"\u003eCloud\u003c/a\u003e - \u003ca href=\"https://memphis.dev/docs/\"\u003eDocs\u003c/a\u003e - \u003ca href=\"https://twitter.com/Memphis_Dev\"\u003eX\u003c/a\u003e - \u003ca href=\"https://www.youtube.com/channel/UCVdMDLCSxXOqtgrBaRUHKKg\"\u003eYouTube\u003c/a\u003e\n\u003c/p\u003e\u003c/b\u003e\n  \n# Welcome to Memphis Functions\nMemphis Functions Is A Faster, Easier, And Dev-First Platform For\u003cbr\u003e\nDeveloping Highly-Customizable Event-driven Features and Pipelines By Creating or Employing Serverless Functions.\u003cbr\u003e\nMemphis Functions has the capability to seamlessly integrate with various streaming platforms and other sources, such as Kafka and S3, enhancing their functionality.\n\u003cbr\u003e\u003cbr\u003e\n\u003cstrong\u003eThis repository hosts public functions created by Memphis.dev and the community,\u003cbr\u003eaccessible across all Memphis.dev deployments and the Cloud.\u003c/strong\u003e\n\n## How to attach a new function\n1. [Create](https://cloud.memphis.dev) a Memphis.dev Cloud Account\n2. Create a new station\n3. Attach a new function\n4. Produce some messages\n\n## How to develop a new private function\nMemphis functions offers two types of function libraries: Public, and private.\u003cbr\u003e\u003cbr\u003e\nThe public library is available by default for each account and is powered by Memphis.dev Functions repository.\u003cbr\u003e\nThe private library is available for your account only and therefore requires the user to develop functions and integrate its account with the designated repositories.\n\u003cbr\u003e\u003cbr\u003e\nA function comprises code files (based on [Memphis template](https://github.com/memphisdev/memphis-dev-academy/tree/master/memphis-functions)) and a `memphis.yaml` file contained within a unified directory.\u003cbr\u003e\nThe directory ought to be included in a Git repository that's linked with Memphis.\u003cbr\u003e\nHere is a brief hierarchy diagram of how a compatible function file tree should be constructed:\u003cbr\u003e\u003cbr\u003e\n\u003cimg src=\"https://github.com/memphisdev/memphis-dev-functions/assets/70286779/57591907-ce74-454c-a9e3-f7348db88c48\" width=\"50%\" /\u003e\n\u003cbr\u003e\n\n### :rocket: Step-by-step Guide:\n1. Clone or create a new repository (At the moment, support is exclusively available for GitHub.)\n2. Within this repository, establish a fresh directory and initialize it to your chosen programming language\n```bash\nmkdir my-function \u0026\u0026 cd my-function \u0026\u0026 npm init -y\n```\n3. [Copy](https://github.com/memphisdev/function-templates) one of the Memphis Functions templates. For this guide, we chose Node.js\n4. *Required*. Write your logic inside the `eventHandler` block.\u003cbr\u003eIncoming events will be accumulated and dispatched to a function collectively in a batch, therefore the wrapper\n```js\nexports.handler = async (event) =\u003e {\n    return await createFunction(event, eventHandler);\n};\n\n/**\n * https://github.com/memphisdev/memphis.js/tree/functions_wrapper#creating-a-memphis-function\n * @param {Uint8Array} payload \n * @param {Object} headers \n * @param {Object} inputs \n * @returns {Object} \n */\nfunction eventHandler(payload, headers, inputs) {\n    // Handle event here\n\n    // A short example of converting the payload to a json object and returning it as an Uint8Array\n    const decodedPayload = payload.toString('utf-8');\n    const asJson = JSON.parse(decodedPayload);\n\n    return {\n        processedMessage: Buffer.from(JSON.stringify(asJson), 'utf-8'),\n        processedHeaders: headers\n    };\n}\n```\nMessages will return to the Memphis Station in a batch as well.\u003cbr\u003e\n5. *Required*. Add or modify the `memphis.yaml` file based on the following template:\n```yaml\nfunction_name:        #Required. Must be equal to the directory name\nruntime:              #Required. [go | nodejs | nodejs16.x | nodejs18.x | python3.8 | python3.9 | python3.10 | python3.11]\ndependencies:         #The file name contains the list of dependencies the function making use of - default to [requirements.txt(python) / go.mod(go) / package.json (nodes)]\nhandler:              #Required for node.js/Python only. The name of the function's entry point - \u003cfile name\u003e.\u003cfunction name\u003e - for example, if your function is called 'handler' and written inside 'main.py', the handler should be main.handler\ntags:                 #List of tags\n  - tag: json\n  - tag: dev\ninputs:               #list of input fields that will be injected into your function per attachment\n  - name: timestamp\ndescription:          #Description\n```\n6. *Optional*. Add a README file to describe your function so others will know what to do :)\n7. Connect the designated repository with your Memphis account\n8. `my-function` should be available through the Functions main page or a station\n\n## How to develop a new public function\n1. Fork https://github.com/memphisdev/memphis-dev-functions\n2. Add your function's directory, including memphis.yaml file\n3. Create a PR\n4. The addition of the new function will take place following a thorough review and subsequent approval\n5. Get your swag pack! 😍\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuperstreamlabs%2Fmemphis-dev-functions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuperstreamlabs%2Fmemphis-dev-functions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuperstreamlabs%2Fmemphis-dev-functions/lists"}