This is an old revision of the document!
This is the “expert/technical” extension of the user FAQ.
There is some experimental functionality available in Loader's 0.5.0 development branch to run Fabric Loader on top of Paper specifically, but there are many caveats pertaining to Bukkit API's deficiencies (such as hardcoding the list of blocks/items in an enum, making it very difficult to support modded blocks or items). This will probably never be officially supported and should be treated more as a curiosity/special-case scenario.
The best approach here would be to port SpongeCommon and a modified version of SpongeVanilla as a Fabric mod implementing the Sponge API. As Fabric is using a fork of SpongePowered Mixin at its core, this is made somewhat easier - but the mappings differences make up for this, so to say.
In theory, there is nothing stopping you from running Fabric's mod loader on any version of Minecraft, under any obfuscation layer, all the way down to c0.0.11a. However, Yarn mappings don't exist for most of these versions - as such, making mods is made… a tad more complicated.
Yes! Generally, all JAR mods (such as old versions of OptiFine, or Better Than Wolves) should work fine, and allow the same degree of moddability you'd get with an unmodded version of Minecraft. However, there are some special notes:
For most pre-1.13 mod loaders, you must enable compatibility mode in Fabric Loader, by adding the JVM flag
With regards to running Minecraft Forge:
With regards to running ModLoader: No known problems.