Skip to content

A lightweight but batteries included Roblox framework

License

Notifications You must be signed in to change notification settings

Mark-Marks/sapphire

Repository files navigation

sapphire sapphire

CI License: MIT Wally

sapphire

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.

Todo

  • Set up project
  • Make basic, extensible module loader
  • Add pre-built extensions:
    • sapphire-lifecycles - extra lifecycles for RunService and Players
    • sapphire-logging - a nice logging library with a log history
    • sapphire-net - optimized networking library that features defined (like ByteNet) 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 like keyForm
    • sapphire-ecr - scheduler for ECR with niceties
    • sapphire-jecs - scheduler for JECS with niceties

Notes

  • 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.

Styling guide

There is none, although sapphire tries its best to follow snake_case.

Documentation

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.

About

A lightweight but batteries included Roblox framework

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages