Monazita, F# library for working with PostgreSQL
Monazita, F# library for working with PostgreSQL
I'm happy to share an F# library to interact with a postgresql database in a railway oriented programming style[3] and writing SQL queries. It is available at https://gitlab.com/monazita/monazita/ with documentation at https://monazita.gitlab.io/monazita/ It was developed for a web application [1] requiring the use of specific SQL queries (using the table_func[2] plugin for crosstab queries) which prevented the use of more traditional ORM-style libraries. As I was also using the development of that application to dive into functional programming, I decided to try a fully functional approach[4]. It proved itself a very useful approach, to the point I thought it was worth to share it as a Nuget library [6]. I particularly like the fact that I can * write normal sql with parameter substitutions using printf placeholders. If you don't want to write SQL, this library is clearly not for you :-) * define the queries and data manipulations without worrying about the connection to the database. This allowed me to define all queries and data manipulations in a library [5] where I'm not concerned about handling connection issues, which is done in the app code using that library. The library is released under the LGPL license, and is published as an alpha stage project because it still needs some cleanup after its extraction from the web app it originated from. But I'm following the "release early, release often" approach here, also to gauge interest. This library only supports postgresql for the moment, but in the mid-term I'd like to support other databases, starting with sqlite. 0: https://monazita.gitlab.io/monazita/ 1: http://www.myowndb.com 2: https://www.postgresql.org/docs/current/tablefunc.html 3: https://fsharpforfunandprofit.com/rop/ 4: https://fsharpforfunandprofit.com/posts/elevated-world-6/#re... 5: https://gitlab.com/myowndb/myowndb/-/tree/master/lib This library defines all data retrieval, insertions, updates, transformations, etc without ever handling a database connection. 6: https://www.nuget.org/packages/Monazita
Share cardActual performance
Launch Intel predictions
Analyze your own launch →Incorrect prediction on native model
Similar products
Spans 1.0, a Pythonic library for working with intervals
Versionparser – Java library for working with versioning schemes
Kafka FDW for PostgreSQL
es2postgres – ElasticSearch to PostgreSQL Loader
Metagration: PostgreSQL Migrator in PostgreSQL
PRQL in PostgreSQL
Quickgres.js, 430 LoC pipelined PostgreSQL client library
Queries, a pythonic PostgreSQL client library
PGLite – PostgreSQL in the Browser
HackerBracket – What are you working on?