Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

More instructions here

Commit Hooks

Precommit Pre-commit is the preferred tool used for setting up the git hook for local development.

...

  1. Sum Types: Ability to add structures and enumeration as variants inside a parent Enum.
  2. Traits: Offers Polymorphism-like characteristics provided in traditional OOP languages.
  3. Destructive Move: Each block of code can own the object inside the block making it safer and also easily garbage collected. Rust also offers memory safety for pass-by references and enforces strong compiler validations to prevent memory errors.
  4. Predictable Error handling: Rust allows you to return Result type objects which can contain either an OK (success object) or an Error(object). This makes the code more predictable and also reduces the scope of unpredictable errors.
  5. Options: Rust allows values to be built ergonomically using Options, in many cases values are built over a lifetime or in some cases not at all. Rust solves this problem using the Option type which can be initialized to None and when the option value gets filled it becomes a Some(Value).
  6. Pattern Matching: Rust offers strong Match  pattern syntax which places Arms for a given value. It can use regular datatypes(str, u32, bool), Result, and Options making it more readable for even complex conditions.


Why Extensions?

Extensions in Ripple offer extensibility and faster migration. Below are some of the good use cases where an extension is necessary

  1. Firebolt API requests and responses are not readily available in a Thunder Plugin or an external service.
  2. Firebolt API requires multiple Thunder calls and events to provide the API response as defined in the Firebolt OpenRPC schema.
  3. Firebolt API requires proprietary API calls either within the device or to a backend service for a given operator.
  4. Firebolt API is supported only for a given device and it is not required for another device(s).
  5. Non-Firebolt API is supported by the existing Application which needs backward compatibility.

Each of these use cases expects something more from each platform when we try to scale across other global partners.

Extensions offer that extra leverage to easily migrate and offer support for these platforms as they try to fully adopt to the Firebolt Architecture.

Why Contracts?

HLA

Manifests

Ripple SDK

Ripple Main

Extensions

Bootstrap

IEC

ADRs

Links and Stuff

...