Skip to content

Repository files navigation

AntelopeJS logo

AntelopeJS

NPM version License Discord Documentation

Hexagonal architecture. Beyond your own code.

AntelopeJS is a TypeScript framework and CLI for Node.js applications. It extends the ports-and-adapters model across your application and the ecosystem modules you install: consumers depend on explicit contracts, provider modules implement them, and your application selects the implementations.

You already separate business behavior from integrations. AntelopeJS supplies the interface binding, module lifecycle and assembly mechanisms, so you do not have to rebuild that infrastructure for each project.

One contract model, across the ecosystem

The dependency boundary stays the same whether you write the provider or install it:

Business module ──depends on──▶ Contract ◀──implements── Provider module
  • Contracts describe capabilities. Interface packages expose the public API that consumers and implementations agree on.
  • Providers own integrations. A provider module registers its implementation with the runtime. Consumers call the contract instead of importing that provider.
  • The application owns the choice. Configure local, package or Git module sources in antelope.config.ts, outside consuming business modules.
  • The runtime handles the connections. AntelopeJS manages interface bindings and module lifecycle through the same mechanisms for local and ecosystem modules.

For example, the MongoDB and RethinkDB modules both declare the shared database contract. They also expose provider-specific interfaces: using those deliberately ties that consumer to the provider.

Change implementations, with explicit limits

A replacement can leave consuming code unchanged when it supports the required contract version, capabilities and behavior. Provider configuration, credentials, data migrations and operational differences still need attention. Matching types alone does not establish compatibility.

AntelopeJS provides the mechanisms for these boundaries; it does not prevent your code from bypassing them. Consumers still depend on their contracts, and the framework does not automatically make your business code framework-independent.

Development hot module reloading is a separate workflow feature, not a promise of live production migration between providers.

Installation

Install @antelopejs/core, which provides the ajs CLI:

pnpm add -g @antelopejs/core

Getting Started

To create a new project with the CLI:

ajs project init <project-name>

Documentation

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

About

TypeScript framework extending hexagonal architecture across your application and its ecosystem through explicit contracts and replaceable modules.

Topics

Resources

Code of conduct

Security policy

Stars

24 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages