ZANREAL logoNEMO

Migrating to @zanreal/nemo

NEMO moved from the @rescale npm scope to @zanreal in v3.0.0 — here is what changes for you

Starting with v3.0.0, NEMO is published as @zanreal/nemo.

The API did not change. Same exports, same signatures, same behaviour — only the package name is different. For most projects this is a two-line migration.

Automatic migration

A codemod does the whole thing — imports and package.json — in one pass:

npx @zanreal/nemo-codemod

Then reinstall with your own package manager so the lockfile picks up the new package — npm install, pnpm install, yarn or bun install.

Want to look before you leap? --dry reports what would change without writing; add --print to see the transformed source:

npx @zanreal/nemo-codemod --dry --print

The codemod is an AST transform, so it only rewrites real module specifiers — mentions of @rescale/nemo in comments or strings are left alone. Full options are in the codemod README.

Manual migration

It is a rename, so doing it by hand is fine too.

Install the new package

npm install @zanreal/nemo

…and remove the old one:

npm uninstall @rescale/nemo

Update your imports

proxy.ts
import { createNEMO } from '@rescale/nemo'; 
import { createNEMO } from '@zanreal/nemo'; 

Subpath imports move the same way:

import { MemoryStorageAdapter } from '@rescale/nemo/storage'; 
import { MemoryStorageAdapter } from '@zanreal/nemo/storage'; 

That's it. No code changes, no config changes.

Do I have to migrate right now?

No. Your existing install keeps working exactly as it does today — nothing about it changes.

Be aware of what the alias does and does not give you, though. The alias starts at v3.0.0, which is a major, so a ^2 range will not pick it up: projects on @rescale/nemo 2.x stay on 2.x and do not receive upstream fixes automatically. To keep getting fixes without changing your imports yet, move to @rescale/nemo@3, which re-exports @zanreal/nemo:

npm install @rescale/nemo@^3

That is a stopgap. The alias is deprecated — installing it prints a deprecation notice, and it will eventually stop being published. Migrating to @zanreal/nemo is the destination.

Both packages resolve to the same code at runtime, so a dependency tree containing both — for example, your app on @zanreal/nemo and a library still on @rescale/nemo — works correctly. You will just have the alias package installed alongside it.

Why the move

NEMO is now maintained by ZanReal as a company project rather than one person's side project, so the package and the repository moved to the organisation's own scope. Nothing about the licence (MIT), the maintainers, or the project's direction changes.

Project stewardship has the longer version.

Still on v1.4?

The v1.4 documentation continues to describe @rescale/nemo, because that version was only ever published under the old name. Upgrade to v2 first — see the v1.4 docs for the API differences — then follow this guide.

On this page