/deepkit-framework

The most advanced and fastest full-featured web framework for isomorphic and sophisticated TypeScript projects like complex admin or management interfaces, games, desktop and mobile apps.

Primary LanguageTypeScriptMIT LicenseMIT


Language grade: JavaScript CI

Deepkit Framework the new high-performance and real-time TypeScript framework for sophisticated isomorphic TypeScript applications.

Deepkit Framework consists of many high-performance TypeScript components aka packages, that can be used alone or in combination with the framework.

Deepkit Framework is all about high-performance:

  • Execution speed
  • Development speed
  • Time to Market

The economic advantage of isomorphic TypeScript projects (frontend and backend written with TS) is enormous and Deepkit Framework wants to utilize this advantage to its fullest.

NOTE: We have only recently started refactoring a huge portion of this project and work hard on the first release. Website and docs will follow soon.

Packages

@deepkit/type: Runtime type system with the fastest serializer for TypeScript, ultra-fast validation, and type reflection system. The heart of Deepkit that interoperates with all following packages in the most efficient way. Use one schema/model definition for your whole application stack: Database, DTO, RPC, message queue, frontend, and more.

@deepkit/framework: A command line framework to write command line tools using a dependency injection container and simple classes.

@deepkit/framework: High-Performance HTTP/RPC server, HTTP Router, typesafe module&configuration system, typesafe HTML template engine, Dependency-Injection, Debugger, CLI. Uses @deepkit/type for module configuration schema definition and router parameter/body schema definition. Example application.

@deepkit/orm: The fastest ORM for TypeScript with data-mapper/active-record pattern, UnitOfWork/IdentityMap, typesafe QueryBuilder, full returning/relations/join support, atomic patches, and SQL migrations. SQLite, PostgreSQL, MySQL, and MongoDB support. Uses @deepkit/type for schema definition.

@deepkit/orm-browser: A data browser for @deepkit/orm allowing to modify entity data directly in the browser with support for migrations, query prompt (think MongoDB GUI), ER model diagram, and migrations.

@deepkit/rpc: Highly configurable high-performance RPC server for TypeScript, with support for auto-inferring return and parameter types (no code-generation needed), stream support using RxJS Observables, binary protocol with ability to track download/upload progress, peer2peer communication, and live entity/collections. Uses @deepkit/type for type declaration.

@deepkit/broker: High-Performance typesafe message bus server for pub/sub pattern, key-value storage, and central atomic app locks.

@deepkit/desktop-ui: Angular UI framework for desktop applications.


@deepkit/workflow: A workflow library to implement atomic workflow transitions with a dispatcher pattern.

@deepkit/event: Asynchronous event dispatcher for Typescript using decorators and classes..

@deepkit/http: A workflow library to implement atomic workflow transitions with a dispatcher pattern.

@deepkit/logger: A logger library with support for colors, scopes, various transporter and formatter.

@deepkit/injector: A compiling high-performance dependency injection container, with constructor/property injection, type-safe configuration system, compiler-passes, scopes, and tags.

@deepkit/topsort: A fast implementation of a topological sort/dependency resolver with type grouping algorithm.

@deepkit/template: A fast template engine based on TSX, with support for dependency injection container and async templates.

@deepkit/bson: Fastest BSON parser and serializer. 13x faster than official bson-js/bson-ext, and 2x faster than JSON. Uses @deepkit/type for schema definition.

@deepkit/mongo: MongoDB client for modern TypeScript: Full async error stack trace, BigInt support, and best performance possible.

@deepkit/type-angular: Use @deepkit/type schemas directly in Angular Forms, making form validation much easier.