https://github.com/entropic-dev/boltzmann
an ergodic framework for entropic
https://github.com/entropic-dev/boltzmann
Last synced: 6 months ago
JSON representation
an ergodic framework for entropic
- Host: GitHub
- URL: https://github.com/entropic-dev/boltzmann
- Owner: entropic-dev
- License: other
- Created: 2019-11-26T19:45:07.000Z (over 5 years ago)
- Default Branch: latest
- Last Pushed: 2022-03-29T18:09:22.000Z (about 3 years ago)
- Last Synced: 2024-10-29T21:05:47.412Z (6 months ago)
- Language: TypeScript
- Homepage: https://www.boltzmann.dev/en/docs/latest
- Size: 3.53 MB
- Stars: 8
- Watchers: 4
- Forks: 4
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# boltzmann

Boltzmann is a JavaScript framework for writing web servers. It is implemented in a single file that lives alongside your code. Boltzmann is focused on delivering a great developer experience and makes its tradeoffs with that goal in mind.
Our design goals:
- Make all return values from route handlers and middlewares be valid responses, mapping to http semantics.
- Prefer zero-cost abstractions: pay for what you use and nothing more, including in installation and startup time.
- Use global types, no special response types.
- Only modify objects we provide; do not rely on modifications to node's request & response objects.
- Provide pluggable behavior for body-parsing and middleware, with good defaults.
- Use only minimal, well-vetted dependencies.
- Bake in observability (optionally), via [Honeycomb](https://honeycomb.io) tracing.
- Rely on a little bit of documented convention to avoid configuration.
- Making throwing Boltzmann away if you need to move on _possible_.Boltzmann is implemented in vanilla JavaScript and scaffolds a JavaScript project by default, with TypeScript definitions for your development convenience. It can scaffold a TypeScript project if you choose, but does not otherwise require you to opt into transpilation. We'd like you to be able to run Boltzmann apps under deno or in a web worker some day, so we make API choices that move us toward that goal.
For full Boltzmann docs, visit [the documentation site](https://www.boltzmann.dev/en/docs/latest/).
## Getting started
If you prefer to look at working example code, we've provided examples in the [`./examples`](https://github.com/entropic-dev/boltzmann/tree/latest/examples) directory of this repo.
To scaffold a new service with Boltzmann, run the `boltzmann` command-line tool. You can get it from [the releases page](https://github.com/entropic-dev/boltzmann/releases) or run it via `npx boltzmann-cli`. (We prebuild for Mac OS, Windows, and GNU Linuxes.) The tool is responsible for initializing a new Boltzmann project as well as keeping it up to date. You enable or disable specific Boltzmann features using the tool.
For example, to scaffold with the defaults:
```shell
projects|⇒ npx boltzmann-cli hello
```A complete project is provided for you, with useful package run scripts and linting. To run: `./boltzmann.js`. And to view the response: `curl http://localhost:8000/hello/world`. Want to know more? [Check the docs!](https://www.boltzmann.dev/en/docs/latest/)
## Team
Boltzmann is a joint venture of [@ceejbot](https://github.com/ceejbot) and [@chrisdickinson](https://github.com/chrisdickinson).
### Hacking
See [HACKING.md](./HACKING.md).
## LICENCE
Apache-2.0.