Skip to main content

Roadmap

Here are the ambitions and planned features of the Linkit Project and all its side projects

Framework

  • 🔲 Fully exclude Engine dependency from user-side
  • 🔲 Create a SPI in order to extend some parts of the framework
  • ❓ Actions shortener (be able to make complex actions that would require a bunch of objects access to be completed)
  • 🔲 Inter-Engine Garbage Collector (GC for unused Network Objects)
  • 🛠️ Connected Objects
    • 🛠 Contracts
      • ❓ Discuss if we keep modifiers
      • 🛠️ Better invalid contracts error messages
      • ✅ Apply contract on classes, methods, fields
      • ✅ Ability to specify that an object should become a chipped or mirror object
      • ✅ Stub classes for mirroring objects
    • 🛠️ DSL Language
      • ✅ Class, methods, fields description support
      • ✅ Mirror, chipped objects specification support
      • ✅ Stub classes / interfaces
        • ✅ Simple agreement description
        • 🔲 Add custom engine tags for agreement description (instead of defaults "owner", "cache_owner" etc)
  • 🔲 Connection
    • 🔲 Fully handle engine disconnection without crash
    • 🔲 Fully handle engine reconnection without crash

Website

  • 🔲 Contribute page
    • 🔲 Add rules and a how-to-contribute paragraph
    • 🔲 Add a mini survey for the contributors to help them choose what they could do based on what they like to do
    • 🔲 For each feature that needs contribution, create a page that explains what to do.
  • ✅ Funny workers set as a decoration during dev phase

Debugger

Builtin

  • 🛠️ Watchdog
    • ✅ Simple deadlock detection on local side (can be uncorrect)
    • 🔲 Further deadlock detection by analyzing the other engines states and figure out if the threads are deadlocked or just simply waiting an external event (user input, method execution etc)
    • 🔲 On deadlock, Find what threads are locked on the remote side and then print out the remote threads names in charge of the response.
  • 🛠️ Debugger

Graphical app

The app would be based on the builtin outputs.

  • 🔲 Traffic Panel
    • 🔲 Packet Tab
      • 🔲 Ordered list of all packets being sent/received by the engine
      • 🔲 Ability to apply filters on the list to show specific packets
      • 🔲 Insight for each packets on what's happened during serialization/deserialization
      • 🔲 Insight for each packets on what's happened during injection
    • 🔲 Channel Tab
      • 🔲 List of opened channels with their nodes information
      • 🔲 List of packet involved into channels (sent and received)
  • 🔲 Workers Panel
    • 🔲 Insight of each task of each workers
      • 🔲 What subtasks has been created
      • 🔲 If task is paused, know why (is it waiting for a request, for another task etc...)
  • 🔲 Persistence Panel
    • 🔲 Get insights on what happens during the serialization of a packet
      • 🔲 Know what presence request are done
      • 🔲 Know what Network Object are sent
      • 🔲 Know what objects are replaced by a reference
      • 🔲 Know what unregistered classes and SyncDef classes are sent