A lightweight module loader or a batteries included framework
Caution
Here be dragons! Sapphire and its extensions are barely tested and in alpha
Important
All crates are versioned differently. Whilst the core may be at v0.1.0
, an extension could be at v0.5.3
.
Because this is a change @ v0.1.2
, sapphire
, sapphire-lifecycles
, sapphire-logging
saphire-net
, sapphire-data
and sapphire-ecr
start at v0.1.2
whilst any other crates don't because they were released after this change.
- Set up project
- Make basic, extensible module loader
- Add pre-built extensions:
-
sapphire-lifecycles
- extra lifecycles forRunService
andPlayers
-
sapphire-logging
- a nice logging library with a log history -
sapphire-net
- optimized networking library that features defined (likeByteNet
) events and undefined events, both with buffer serdes, albeit undefined events performing worse due to having to define types and lengths in the buffer -
sapphire-data
- batteries included wrapper for an existing data library likekeyForm
-
sapphire-ecr
- scheduler for ECR with niceties -
sapphire-jecs
- scheduler for JECS with niceties
-
- Partially inspired by prvdmwrong/prvdmwrong!
- Dependency injection doesn't exist because it can be implemented as an extension.
- Typescript support is half assed at best and non existent at worst, feel free to PR good types in and I'll accept them.
- Sapphire and all of its extensions are licensed under the MIT license.
- Sapphire and all of its extensions are strictly typed.
- Sapphire is built around decoupling singletons from itself - you don't have to require sapphire in singletons to do anything.
Important
JohnnyMorganz/wally-package-types or a package manager which exports types NEEDS to be used to get good type support for extensions. All extensions with dependencies rely on them to have exported types.
There is none, although sapphire tries its best to follow snake_case.
A documentation website doesn't exist yet, although an API reference can be viewed in extension READMEs.
Do note that some API references might not be fully up to date, although the author tries to maintain them.