graphql-w-persistent alternatives and similar packages
Based on the "Data" category.
Alternatively, view graphql-w-persistent alternatives based on common mentions on social networks and blogs.
-
semantic-source
Parsing, analyzing, and comparing source code across many languages -
lens
Lenses, Folds, and Traversals - Join us on web.libera.chat #haskell-lens -
hnix
A Haskell re-implementation of the Nix expression language -
text
Haskell library for space- and time-efficient operations over Unicode text. -
code-builder
Packages for defining APIs, running them, generating client code and documentation. -
unordered-containers
Efficient hashing-based container types -
compendium-client
Mu (μ) is a purely functional framework for building micro services. -
massiv
Efficient Haskell Arrays featuring Parallel computation -
cassava
A CSV parsing and encoding library optimized for ease of use and high performance -
holmes
A reference library for constraint-solving with propagators and CDCL. -
hashable
A class for types that can be converted to a hash value -
resource-pool
A high-performance striped resource pooling implementation for Haskell -
binary
Efficient, pure binary serialisation using ByteStrings in Haskell. -
primitive
This package provides various primitive memory-related operations. -
json-autotype
Automatic Haskell type inference from JSON input -
discrimination
Fast linear time sorting and discrimination for a large class of data types -
network-msgpack-rpc
A MessagePack-RPC Implementation -
hashtables
Mutable hash tables for Haskell, in the ST monad -
certificate
Certificate and Key Reader/Writer in haskell -
audiovisual
Extensible records, variants, structs, effects, tangles -
reflection
Reifies arbitrary Haskell terms into types that can be reflected back into terms -
IORefCAS
A collection of different packages for CAS based data structures. -
dependent-map
Dependently-typed finite maps (partial dependent products) -
dependent-sum
Dependent sums and supporting typeclasses for comparing and displaying them -
streaming
An optimized general monad transformer for streaming applications, with a simple prelude of functions -
orgmode-parse
Attoparsec parser combinators for parsing org-mode structured text! -
bifunctors
Haskell 98 bifunctors, bifoldables and bitraversables -
text-icu
This package provides the Haskell Data.Text.ICU library, for performing complex manipulation of Unicode text. -
protobuf
An implementation of Google's Protocol Buffers in Haskell. -
avro
Haskell Avro Encoding and Decoding Native Support (no RPC) -
safecopy
An extension to Data.Serialize with built-in version control -
scientific
Arbitrary-precision floating-point numbers represented using scientific notation -
uuid
A Haskell library for creating, printing and parsing UUIDs -
uuid-types
A Haskell library for creating, printing and parsing UUIDs
Access the most powerful time series database as a service
Do you think we are missing an alternative of graphql-w-persistent or a related project?
README
Project Sponsors
I appreciate you.
To become a sponsor and/or purchase merchandise, you can visit the below Merchandise section.
Looking for Master of Computer Science programs; if you are inviting students to a graduate program, I'd like a message from you. My interests are Natural Language Processing, Machine Learning, Artificial Intelligence, and a Data Science.
graphql-w-persistent
An efficient application of GraphQL to SQL database querying and processing data: translate GraphQL to SQL & relation tuples to GraphQL objects, abstract SQL schemas for a fully-connected entity-relationship mapping
- for your desktop applications
- for data exploration
- for aggregated data
News Posts
2020-09-17 - In version 0.9.1.0, I fixed a problem in getting all the data from a nested query with the aggregate functions. I now merge redundant nested objects, and I added improvements for efficiency.
2020-05-31 - Version 0.9.0.0 is fixing several more things. Null values are now supported; table are now supported to appear more than once in joins; data types are simplified for .json file support; alternative json aggregate SQL query functions are now supported for faster queries; error is fixed from version 0.8.0.0 for more than two nested objects; inline fragments were not working in version 0.8.0.0, but it is now working; and removed a requirement for "Unexpected nulls" for null values which is making easy compliance with other databases packages and types.
2019-12-28 - Version 0.7.0.1 is fixing the exceptions in 0.7.0.0. Version 0.8.0.0 is reducing queried data by making separate queries for every object and by reading previously queried data for parent objects. In contrast to this space-saving, data processing is slower. Thus, 0.7.0.1 is available if data is not many.
2019-12-21 - Here is a companion web application to help in making your schema json file.
2019-11-16 (Edit: 2019-11-21) - Release 7.0.0 is fixing bugs around using commas or tabs after root objects, and I have changed the schema input to allow custom unique id columns when defining database tables. This package is now more flexible to the input schema of your database. You can use your own primary keys or unique ids for more objects to declare. Another change is declaring server objects with object fields. In this way, you can have objects with separate references against other objects - there isn't a collision (and restriction) on what field names are availble in queries.
2019-08-31 - Release 6.0.0 is correcting bugs of parent object arguments and of processing parental data. I also reduce the computations to the previous code. I also add arguments feature to scalar types. Will you please leave a star if I have helped? - thanks.
2019-08-10 - Version 5.0.0 is published where I've fixed two bugs with subsequent nested objects and with query syntax. I'm sorry that this isn't on the earlier versions. I've added metafields feature and upgraded the SQL joins to maximize data retrieval...please don't forego giving me a star on GitHub, vote on Hackage, and/or claps on my Medium post - thanks!
2019-07-21 - Here's my Medium article to describe the combination of this package with AWS Lambda to have a language agnostic integration of a GraphQL database.
Older news posts are found on this page.
Latest Recommended Version
Features
Here's a check-list from the official documentation...
Feature | Present | Comments |
---|---|---|
argument to root (and nested) objects | :heavy_check_mark: | 0.1.0.4 (0.3.1.2) |
data transformation arguments on scalar fields | :heavy_check_mark: | 0.6.0.0 |
aliases | :heavy_check_mark: | 0.1.0.1 |
named fragments | :heavy_check_mark: | 0.1.0.1 (within variables is not supported until 0.3.2.1) |
operation names | ||
variables (default value |
:heavy_check_mark: | 0.2.0.0 (multiple variables is not supported until 0.3.2.1) |
directives | :heavy_check_mark: | 0.3.2.1 |
mutations | :thought_balloon: | |
inline fragments | :heavy_check_mark: | 0.4.0.0 |
meta fields | :heavy_check_mark: | 0.5.0.0 |
non-null and non-null errors (on data types and arguments) | ||
interfaces to type heirarchy | :heavy_check_mark: | 0.1.0.4 |
input types | :thought_balloon: | |
introspection | :thought_balloon: | |
pagination | ||
authorization moderated fields and null types (authorization layer before GraphQL) | ||
pagination for long lists (as transformations) | ||
server-defined fields (like counts/previews from the thinking in graphs page) and user-designed schema | ||
business logic layer | ||
caching |
Web application
A web application is hosted to help make a schema. To see one of the features of this GraphQL interface, an example schema example-schema.json
is saved in the examples
folder. Once imported into application, a diagram is drawn to visualize the connections between objects. App link is here - check it out for fully-connected schemas!
Examples
There is five examples. One is an to open a web server. This is in the examples/server-example
folder. You can run it by downloading project folder and following the instructions in the README.md
file. Two examples are applying the GraphQL middleware to a pre-existing MySQL or Postgresql database. The other two are putting these onto AWS for cloud solutions. Instructions are in the README.md
file to make AWS Lambda functions, but you can read more on my Medium article. Lastly, I'd like a star and claps.
set-up
make sure that you have Stack program and compilers.
download one project folder from the
examples
folderfollow instructions from those
README.md
files to run example project
examples
Here are example queries to run with the schema in server-example
:
example 1
query Example1($withOwner: Boolean) {
AllPets: pet {
name
gender(as: MALEFEMALE)
owner @include(if: $withOwner) {
name
gender(as: MALEFEMALE)
}
}
AllPeople: person {
name
}
}
with variable
{ "withOwner": false }
example 2
query Example2($asTaxonomy: Boolean = false, $withGender: Boolean = true) {
AllPets: pet {
name
gender(as: MALEFEMALE) @include(if: $withGender)
taxonomy @include(if: $asTaxonomy) {
name
}
family @skip(if: $asTaxonomy) {
name
}
genus @skip(if: $asTaxonomy) {
name
}
species @skip(if: $asTaxonomy) {
name
}
breed @skip(if: $asTaxonomy) {
name
}
}
}
example 3
query Example3 ($withOwner: Boolean = false) {
MalePets: pet (gender: 1) {
...petFields
}
FemalePets: pet (gender: 0) {
...petFields
}
}
fragment petFields on Pet {
name
owner
@include(if: $withOwner) {
name
}
}
example 4
query Example4 {
taxonomy {
name
... on Species {
pet {
name
}
}
}
}
Merchandise
From my GitHub sponsors page, you can order printed merchandise. This is the only way to reward the developer (me) for my hard-work!
The canvas bag is simple and pretty. It is appropriate for your clothing, accessories, and snacks.
[Canvas bag photo 1](canvas1.jpg) [Canvas bag photo 2](canvas2.jpg) [Canvas bag photo 3](canvas3.jpg) [Canvas bag photo 4](canvas4.jpg) [Canvas bag photo 5](canvas5.jpg)
The mug is a standard format mug, but it is smaller and easier to hold in the hands.
[Mug photo 1](mug1.jpg) [Mug photo 2](mug2.jpg)
<!--- --->