Package schemes: Supporting packages with one-level schemes could help organize the ecosystem a bit. It also allows to forbid conflicts when working with different platforms; for example, the navigator (web
), Adobe AIR (air
), system, embedded chips and others. The lang
scheme would mean platform agnostic.
Package namespaces: The existing RFC for packages as optional namespaces could allow for subnamespaces. For example, com::author::library
, com::business::product
.
Here is a draft example of these ideas for a Java-Rust hybrid language I've just noted:
/*
The package manager uses platform-schemed dependencies.
For example, here would be the manifest of a gaming
application made with Adobe AIR ("air" scheme):
*/
{
"name": "com.author.library",
"scheme": "air"
"dependencies": {
"lang:color": "1.0.0",
"air:com.author.otherLibrary": "1.0.0"
}
}
/*
Platform-agnostic packages use the "lang" scheme.
*/