Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/compasjs/compas
Unified backend tooling
https://github.com/compasjs/compas
api-client compas generator nodejs query-builder router types validators
Last synced: 3 days ago
JSON representation
Unified backend tooling
- Host: GitHub
- URL: https://github.com/compasjs/compas
- Owner: compasjs
- License: mit
- Created: 2020-04-30T19:03:52.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-12-24T04:57:49.000Z (13 days ago)
- Last Synced: 2024-12-25T01:33:44.456Z (12 days ago)
- Topics: api-client, compas, generator, nodejs, query-builder, router, types, validators
- Language: JavaScript
- Homepage: https://compasjs.com
- Size: 20.8 MB
- Stars: 12
- Watchers: 4
- Forks: 8
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.md
- Contributing: contributing.md
- License: LICENSE
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
Unified backend tooling
---
All common components for creating backends, tooling and more in opinionated
packages; from describing the api structure to testing the end result.## Features
- Code generators for routers, validators, SQL queries, API clients and more
- Logging, body parser and error handling out of the box
- Persistence layer with Postgres for files, jobs and sessions
- An extendable CLI that comes with a test runner and is able to run your
database migrations.
- Structured logging all throughout, giving you insight in the running system.## Requirements
- Node.js >= 16
- Yarn 1.x.x / NPM## Why
I had a time when I was mostly creating small backends and tools back to back.
Always trying to improve them by choosing packages that align better with my
views, new features or more opinionated defaults. To capture this flow and
making those backends and tools easier to maintain, Compas was created.New features added should fall under the following categories:
- It improves the interface between api and client in some way. An example may
be to support websockets in @compas/code-gen
- It improves the developer experience one way or another while developing an
api For example the `compas docker` commands or various utilities provided by
@compas/stdlibAlthough some parts heavily rely on conventions set by the packages, we
currently aim not to be a framework. We aim to provide a good developer
experience, useful abstractions around the basics, and a stable backend <->
client interface.## Docs and development
See [the website](https://compasjs.com) for the
[changelog](https://compasjs.com/changelog.html), all available APIs and various
guides.For contributing see [contributing.md](https://compasjs.com/contributing.html).