Oryx: Packages
Edit on GitHubThe Oryx code base is available on Github, and the code is published and distributed as npm packages. npmjs.com is a widely used registry of packages. Package managers, like npm, yarn, deno, or bun, are used to install dependencies in a project. The dependencies are typically configured in the package.json file of an application.
Oryx packages are distributed under the spryker-oryx organization. Each time a new version is published, the version number is bumped. For more information on the versioning strategy, see Versioning.
We recommend installing the packages instead of cloning the Oryx repository. By depending on packages, you can easily upgrade to later versions of the packages.
Layers
While packages are distributed as a flat list, there is an architectural hierarchy. The hierarchy protects from cyclic dependencies. Packages inside a layer can depend on sibling packages inside the layer without any issues. Packages can never depend on a layer above.
While the package layering might be irrelevant during your development, it might help you to better understand the package dependencies. The following diagram shows four package layers. The top layer is the boilerplate application, which is set up using a preset.
Template packages
The template layer contains packages that can be used as quick starters for demos and projects. Templated packages follow semantic versioning and ensure upgradability. Some packages in the template layer, like presets, are opinionated and might not be used inside your final setup. Their main purpose is to quickly get up and running a standard frontend application.
PACKAGES | LOCATION |
---|---|
Application | @spryker-oryx/oryx-application-orchestration/oryx-applicationlication |
Presets | @spryker-oryx/oryx-presets |
Labs | @spryker-oryx/labs |
Themes | @spryker-oryx/themes |
The Labs package is an exception. It consists of experimental or demo functionality and is not recommended to be used in production.
Domain packages
Domain packages provide components and service logic for certain domains. Organizing packages in domains improves the developer experience by making it easy to understand where to find a certain component or service. For example, the product
domain package contains all product-related components, as well as product services and adapters that integrate with Spryker APIs.
PACKAGES | LOCATION |
---|---|
Auth | @spryker-oryx/auth |
Cart | @spryker-oryx/cart |
Checkout | @spryker-oryx/checkout |
Content | @spryker-oryx/content |
Order | @spryker-oryx/order |
picking | @spryker-oryx/picking |
Product | @spryker-oryx/product |
Search | @spryker-oryx/search |
Site | @spryker-oryx/site |
User | @spryker-oryx/user |
Platform packages
The platform layer contains the core packages of the Oryx framework. They provide the infrastructure to the whole system.
PACKAGES | LOCATION |
---|---|
Core | @spryker-oryx/core |
Experience | @spryker-oryx/experience |
I18n | @spryker-oryx/i18n |
Indexed-db | @spryker-oryx/indexed-db |
offline | @spryker-oryx/offline |
push-notification | @spryker-oryx/push-notification |
router | @spryker-oryx/router |
Base packages
The base layer contains packages that serve as utilities to all layers above. An important part of the base layer is the design system package (UI).
PACKAGES | LOCATION |
---|---|
UI | @spryker-oryx/ui |
Form | @spryker-oryx/form |
Utilities | @spryker-oryx/utilities |
DI | @spryker-oryx/di |
Thank you!
For submitting the form