pasta alternatives and similar packages
Based on the "Web" category.
Alternatively, view pasta alternatives based on common mentions on social networks and blogs.
-
scotty
Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp (Official Repository) -
haskell-bitmex-rest
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
swagger-petstore
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
servant
Main repository for the servant libraries — DSL for describing, serving, querying, mocking, documenting web applications and more! -
neuron
Future-proof note-taking and publishing based on Zettelkasten (superseded by Emanote: https://github.com/srid/emanote) -
airship
Helium + Webmachine = Airship. A toolkit for building declarative, RESTful web apps. -
haskell-kubernetes
Haskell bindings to the Kubernetes API (via swagger-codegen) -
apecs-gloss
a fast, extensible, type driven Haskell ECS framework for games -
digestive-functors
A general way to consume input using applicative functors -
servant-elm
Automatically derive Elm functions to query servant webservices -
tagsoup
Haskell library for parsing and extracting information from (possibly malformed) HTML/XML documents -
kubernetes-client-core
Haskell client for the kubernetes API. A work in progress. -
backprop
Heterogeneous automatic differentiation ("backpropagation") in Haskell -
keera-hails-reactive-htmldom
Keera Hails: Haskell on Rails - Reactive Programming Framework for Interactive Haskell applications -
engine-io
A Haskell server implementation of the Engine.IO and Socket.IO (1.0) protocols -
ghcjs-dom
Make Document Object Model (DOM) apps that run in any browser and natively using WebKitGtk
Static code analysis for 29 languages.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of pasta or a related project?
README
PASTA 
PASTA stands for PostgreSQL Abstract Syntax Tree Assembler.
It provies a set of functions and lenses that will build queries, based on an internal AST representation.
It also provides a toSQL
function the generated AST into Text.
In other words, it allows you to:
- Write SQL queries in Haskell without resorting to string/text concatenation.
- Catch several SQL syntax errors as type-cheker errors.
It won't help you with:
Encoding or decoding values, connecting to the database or executing the queries, for this you can rely on database connection libraries such as:
Creating higher level abstractions over database objects, for this check:
A simple select can be generated as:
import Pasta
toSQL (selectFrom "some_table")
Note that toSQL
currently is implemented using showt
(a function from TextShow module).
A INSERT
statement with conflict resolution (aka UPSERT).
import Pasta
toSQL $
insert "public.foo" ("bar" :| ["qux"]) ("2" :| ["3"])
& onConflict .~ doUpdate "foo_pkey" ["bar" .= ("qux" :: Text)]
The above toSQL
will result in:
INSERT INTO "public"."foo" ("bar") VALUES ('qux') ON CONFLICT ON CONSTRAINT "pkey" DO UPDATE SET "bar" = 'qux' WHERE true
You can use the //
operator to build fully qualified identifiers as in:
toSQL
( select
& columns .~ ("*" :| [])
& relations .~ ["table1"]
& conditions .~ (("table1"//"c") `In` selectFrom "sub")
)
Wich results in:
SELECT * FROM "table1" "table1" WHERE "table1"."c" IN (SELECT * FROM "sub" "sub" WHERE true)
Note that :|
(an operator from semigroups module) is re-exported from PASTA for convenience. The NonEmpty type is used in several PASTA functions.