Repository
Current version released
2 years ago
Versions
- 0.6.2Latest
- 0.6.0
- 0.5.1
- 0.5.0
- 0.4.0
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.2.0-alpha.15
- 0.2.0-alpha.14
- 0.2.0-alpha.13
- 0.2.0-alpha.12
- 0.2.0-alpha.11
- 0.2.0-alpha.10
- 0.2.0-alpha.9
- 0.2.0.alpha-9
- 0.2.0-alpha.8
- 0.2.0-alpha.7
- 0.2.0-alpha.6
- 0.2.0-alpha.5
- 0.2.0-alpha.4
- 0.2.0-alpha.3
- 0.2.0-alpha.2
- 0.2.0-alpha.1
- 0.2.0-alpha
- 0.1.0
- 0.0.24
- 0.0.23
- 0.0.22
- 0.0.21
- 0.0.20
- 0.0.19
- 0.0.18
- 0.0.17
- 0.0.16
- 0.0.15
- 0.0.14
- 0.0.13
- 0.0.12
- 0.0.11
- 0.0.10
- 0.0.9
- 0.0.8
- 0.0.7
- 0.0.6
- 0.0.5
- 0.0.4
- 0.0.3
- 0.0.2
- 0.0.1
- 0.0.0
Cav
Cav is a collection of powerful primitives for building full-stack web apps with Deno.
Status: Ready to play with, but not ready for production. The tests are currently outdated as of 0.2.0-alpha.*. Most will probably fail.
Guiding principles
- Least Astonishment
- Modular, maintainable server definitions
- No-fuss data serialization
- Automatic end-to-end typesafety
- Developer freedom
- Use The Platform
Docs
- Getting started [TODO]
- Routers [TODO]
- Endpoints [TODO]
- Request parsing [TODO]
- Response resolution [TODO]
- Context [TODO]
- Error handling [TODO]
- Client fetch [TODO]
- Assets [TODO]
- Bundles [TODO]
- Web sockets [TODO]
- API [TODO]
Examples
Goals
- It should come with everything a modern web server might need, without relying
on third-party services (minus the database)
- Routing
- Static asset serving
- Signed cookies and JWTs
- Web sockets
- Form and JSON parsing / validation
- De/serialization of most data types, including Files, Dates, Maps, etc.
- Runtime bundling for browser-side TypeScript
- Works with frontend frameworks like Preact
- “Hello world” should be as easy as
deno run
ning a tinyserver.ts
- Zero config
- Zero CLI commands
- The client-side API should use types imported from the server to fully type
requests and responses
- End-to-end typesafety
- Compatible with Zod data parsers
- Its syntax should be functional and declarative, for maximal organization
flexibility
- Immutable, schema-like Router and Endpoint definitions
- No hidden context
- No middleware
- Production deployments should be a simple git-commit-push
- Deno Deploy without a build step
- It should minimize the threat of supply chain attacks
- Zero third-party dependencies
Inspirations
Cav’s description on GitHub is inspired by the Weird Wide Webring 🤙