{"id":22589039,"url":"https://github.com/jwhittle933/funked","last_synced_at":"2025-03-28T17:44:57.302Z","repository":{"id":57623305,"uuid":"248997787","full_name":"jwhittle933/funked","owner":"jwhittle933","description":"A Functional Library for Go","archived":false,"fork":false,"pushed_at":"2022-04-07T02:20:29.000Z","size":69,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-02T18:33:06.191Z","etag":null,"topics":["functional-programming","genserver","golang","library"],"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/jwhittle933.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}},"created_at":"2020-03-21T14:54:42.000Z","updated_at":"2022-01-09T02:04:24.000Z","dependencies_parsed_at":"2022-08-27T00:01:27.699Z","dependency_job_id":null,"html_url":"https://github.com/jwhittle933/funked","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwhittle933%2Ffunked","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwhittle933%2Ffunked/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwhittle933%2Ffunked/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwhittle933%2Ffunked/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jwhittle933","download_url":"https://codeload.github.com/jwhittle933/funked/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246073842,"owners_count":20719555,"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":["functional-programming","genserver","golang","library"],"created_at":"2024-12-08T08:12:03.235Z","updated_at":"2025-03-28T17:44:57.276Z","avatar_url":"https://github.com/jwhittle933.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 style=\"text-align: center\"\u003eFunked: A Functional Library for Go\u003c/h1\u003e\n\n![Build](https://github.com/jwhittle933/funked/actions/workflows/ci.yml/badge.svg)\n\u003ca href=\"https://pkg.go.dev/github.com/jwhittle933/funked\"\u003e\u003cimg src=\"https://pkg.go.dev/badge/github.com/jwhittle933/funked.svg\" alt=\"Go Reference\"\u003e\u003c/a\u003e\n\nFunked, as the name implies, is a functional library for Go. But `functional` has multiple meanings in this context. On the one hand, \"functional\" refers to functional programming techniques, principles such as immutability, referential transparency (pure functions), and function composition. On the other hand, \"functional\" refers to that more abstract quality of code that indicates that it works, is useful, and make certain aspects of writing it more enjoyable or less mentally taxing. This library aims at both, and has taken inspiration from a number of other languages, most notably Rust and Elixir.\n\n## Libraries\nFunked is really just a wrapper for smaller libraries. You can get the whole thing with `go get github.com/jwhittle933/funked/...` or just one, with `go get github.com/jwhittle933/funked/async/process`, or even a collection with `go get github.com/jwhittle933/funked/slices/...`.\n\n### Slices\nThe Go has been alive with talks of generics for a number of years, and course seems to have been plotted for inclusion. Until that time, writing `Filter`, `Map`, and other functional collection helpers is a very manual process. The `slices` package helps to alleviate that for some primitive types, namely `int`, `string`, and `byte` (`uint8`). See the [README](./slices/README.md) for `slices` for an overview of using the API.\n\n### Async\nThe `async` package is designed for starting \"managed\" go routines, async processes that provide a way to monitor activity and communicate. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwhittle933%2Ffunked","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjwhittle933%2Ffunked","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwhittle933%2Ffunked/lists"}