With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js. Learn more →
Top 23 Functional Open-Source Projects
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
PyPika
PyPika is a python SQL query builder that exposes the full richness of the SQL language using a syntax that reflects the resulting query. PyPika excels at all sorts of SQL queries but is especially useful for data analysis.
-
Eclipse Collections
Eclipse Collections is a collections framework for Java with optimized data structures and a rich, functional and fluent API.
-
frontend-clean-architecture
React + TypeScript app built using the clean architecture principles in a more functional way.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
On the other hand, I advise you NOT to use this kind of library and write simple, fast go code most of the time, with the occasional generics helper. Why the hell would I clutter my code with, for example: https://github.com/samber/lo?tab=readme-ov-file#fromentries-...
2. https://github.com/fantasyland/fantasy-land (A bit heavy on jargon)
Note there is a python version of Ramda available on pypi and there’s a lot of FP tidbits inside JAX:
3. https://pypi.org/project/ramda/ (Worth making your own version if you want to learn, though)
4. For nested data, JAX tree_util is epic: https://jax.readthedocs.io/en/latest/jax.tree_util.html and also their curry implementation is funny: https://github.com/google/jax/blob/4ac2bdc2b1d71ec0010412a32...
Anyway don’t put FP on a pedestal, main thing is to focus on the core principles of avoiding external mutation and making helper functions. Doesn’t always work because some languages like Rust don’t have legit support for currying (afaik in 2023 August), but in those cases you can hack it with builder methods to an extent.
Finally, if you want to understand the middle of the midwit meme, check out this wiki article and connect the free monoid to the Kleene star (0 or more copies of your pattern) and Kleene plus (1 or more copies of your pattern). Those are also in regex so it can help you remember the regex symbols. https://en.wikipedia.org/wiki/Free_monoid?wprov=sfti1
The simplest example might be {0}^* in which case
0: “” // because we use *
Project mention: Show HN: Flyde – an open-source visual programming language | news.ycombinator.com | 2024-03-07
jsonnet[1] and kapitan[2] are the tools I currently use. Their learning curve is not optimal (and I tried to contribute to smoothen it with a jsonnet course[3] and a 'get started wit kapitan' blog post[4]), but once used to it it's hard to do without, and their combination makes them even more useful (esp. if you deploy K8s).
In Ruud's case, Jsonnet might have been worth looking at as Hashicorp tools can be configured with json in addition to HCL. But that would have been less fun I guess ;-)
I hope for Ruud it finds its niche, there's quite some competition in this field!
Project mention: Carp: A statically typed Lisp, without a GC, for real-time applications | news.ycombinator.com | 2024-03-11
Project mention: Coconut: Simple, elegant, Pythonic functional programming | news.ycombinator.com | 2023-11-27
Project mention: Ramda: A practical functional library for JavaScript programmers | news.ycombinator.com | 2023-08-04Personally I just don't think Ramda fits really well with JavaScript's mutable and often object-oriented nature. It goes against the grain too much for my taste, and it doesn't work very well with Typescript.
In a professional setting I will probably always reach for Lodash due to it's maturity and mindshare. Personally, though, I really prefer Remeda (https://github.com/remeda/remeda) as a pragmatic and flexible API.
They're using objects, including arrays [1], so I think they would have been more precise to say that they're using objects and arrays as simple data structures rather than using OO features like inheritance and mutation.
[1] https://github.com/tonaljs/tonal/blob/main/packages/chord/in...
Project mention: Gluon is a static, type inferred and embeddabble language written in Rust | news.ycombinator.com | 2023-07-01
Project mention: any recommendations for a good query builder library with good support? | /r/learnpython | 2023-07-11I recently started using drizzle orm and I am now looking for something similar in python, my goal is to be as close to sql syntax as possible without just passing dml commands as strings, type safety would be cool as well, I saw this one pypika but it ha a lot of open issues and no commits for a year, is there anything similar but more stable?
eclipse-collections for Java.
Project mention: Functional Programming Library for Golang by IBM | news.ycombinator.com | 2023-08-17A simple alternative is the combination of:
- https://github.com/samber/lo
- https://github.com/samber/mo
The split is also nice as you can choose to just use the generic convenience functions from lo without the more FP related things from mo.
you can use Datalig within Flix https://flix.dev/
Project mention: Functions and algorithms implemented purely with TypeScript's type system | /r/patient_hackernews | 2023-07-05
Functional related posts
- Go 1.22 Release Notes
- A Reasonable Configuration Language
- Introduction to Jsonnet: The YAML/JSON templating language
- Ask HN: What are your thoughts on no-code tools like Microsoft's Power Automate?
- Go is not an easy language (2021)
- A Lisp interpreter in Malbolge, dubbed the hardest Turing complete language
- Platform for mixing Python, Java, JavaScript and much more
-
A note from our sponsor - SurveyJS
surveyjs.io | 19 Apr 2024
Index
What are some of the best open-source Functional projects? This list will help you:
Project | Stars | |
---|---|---|
1 | RxSwift | 24,154 |
2 | bubbletea | 23,738 |
3 | lo | 15,293 |
4 | fantasy-land | 9,990 |
5 | enso | 7,287 |
6 | cowboy | 7,162 |
7 | jsonnet | 6,745 |
8 | Carp | 5,393 |
9 | Coconut | 3,941 |
10 | remeda | 3,890 |
11 | tonal | 3,645 |
12 | pampy | 3,503 |
13 | gluon | 3,106 |
14 | PyPika | 2,367 |
15 | Eclipse Collections | 2,353 |
16 | frontend-clean-architecture | 2,251 |
17 | mo | 2,241 |
18 | flix | 2,052 |
19 | folktale | 2,038 |
20 | Pyrsistent | 1,977 |
21 | Router5 | 1,722 |
22 | meta-typing | 1,523 |
23 | pocketlang | 1,497 |