daql

package module
v0.0.0-...-86a089b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 15, 2019 License: BSD-2-Clause Imports: 0 Imported by: 0

README

daql

daql is meant to provide domain meta model and query tool using the xelf framework.

It is a work in progress.

Motivation

The repetitive chore of querying, validating, tracking complex, interdependent data across frontend, backend and database is a hassle every web developer knows well.

While ORMs and automatic user interfaces are a reason for people to use frameworks like Django or Rails for fast prototyping, the weight of dependencies and the limits they pose on the overall design makes them unfit for some use cases.

Rich web, mobile or desktop apps all have their own platforms. You may want to query complex interdependent queries from all of these. Simple RPC or HTTP APIs require very specialized endpoints or multiple queries to the backend. But what if you want pagination and sorting? APIs and Endpoints usually grow in complexity and parameters or the clients need to implement the logic.

GraphQL tries to formalize a language for complex API queries. It is designed for clearly defined APIs, as used by big teams and corporations.

The author is a single developer trying to create applications for a small business. The projects data model needs a full history, should support sync and offline work and is ever changing.

It would be great to have a simple language that can easily ported and adapted to be used for complex queries, schema declaration, code generation or even layouts.

License

Copyright (c) Martin Schnabel. All rights reserved. Use of the source code is governed by a BSD-style license that can found in the LICENSE file.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
dom
Package dom provides code for domain model declaration and registration.
Package dom provides code for domain model declaration and registration.
domtest
Package domtest has default schemas and helpers for testing.
Package domtest has default schemas and helpers for testing.
Package evt defines an interface for plain event sourcing and some generic event processors.
Package evt defines an interface for plain event sourcing and some generic event processors.
gen
Package gen provides generic code generation helpers.
Package gen provides generic code generation helpers.
gengo
Package gengo provides code generation helpers go code generation.
Package gengo provides code generation helpers go code generation.
genpg
Package genpg provides code generation helpers postgresql query and schema generation.
Package genpg provides code generation helpers postgresql query and schema generation.
hub
Package hub provides a transport agnostic connection hub.
Package hub provides a transport agnostic connection hub.
wshub
Package wshub provides a websocket server and client using gorilla/websocket for package hub.
Package wshub provides a websocket server and client using gorilla/websocket for package hub.
Package log provides a flexible logger interface and a default implementation using package log.
Package log provides a flexible logger interface and a default implementation using package log.
Package mig provides tools to version, record and migrate a project schema, and also provides rules to migrate the project data.
Package mig provides tools to version, record and migrate a project schema, and also provides rules to migrate the project data.
Package pol provides a simple role based access control system.
Package pol provides a simple role based access control system.
Package qry provide a way to work with external data, but can be used for local data as well.
Package qry provide a way to work with external data, but can be used for local data as well.
qry
Package qry extends the xelf language with a form to construct query functions for external data.
Package qry extends the xelf language with a form to construct query functions for external data.
qrymem
Package qrymem provides a query backend using in-memory go data-structures.
Package qrymem provides a query backend using in-memory go data-structures.
qrypgx
Package qrypgx provides a query backend using postgresql database using the pgx client package.
Package qrypgx provides a query backend using postgresql database using the pgx client package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL