SINT

State, Injection, Navigation, Translation — The Four Pillars of High-Fidelity Flutter Infrastructure.

pub package

Languages:

English Spanish Arabic French Portuguese Russian Japanese Chinese Korean Indonesian Turkish Vietnamese



About SINT

SINT is an architectural evolution of GetX (v5.0.0-rc), built as a focused framework around four pillars only:

Pillar Responsibility
S — State Management SintController, SintBuilder, Obx, .obs, Rx types, Workers
I — Injection Sint.put, Sint.find, Sint.lazyPut, Bindings, SmartManagement
N — Navigation SintPage, Sint.toNamed, middleware, SintMaterialApp, transitions
T — Translation .tr extension, Translations class, locale management

Everything outside these four pillars has been removed: no HTTP client, no animations, no string validators, no generic utilities. The result is 37.7% less code than GetX — 12,849 LOC vs 20,615 LOC.

Key principles:

  • PERFORMANCE: No Streams or ChangeNotifier overhead. Minimal RAM consumption.
  • PRODUCTIVITY: Simple syntax. One import: import 'package:sint/sint.dart';
  • ORGANIZATION: Clean Architecture structure. 5 modules, each mapping to a pillar.

Installing

Add SINT to your pubspec.yaml:

dependencies:
  sint: ^1.0.0

Import it:

import 'package:sint/sint.dart';

High-Fidelity Performance (Benchmarks)

SINT is built for speed. Every pillar is audited against the Open Neom Standard to ensure minimal latency in high-load scenarios.

Current Performance Audit (v1.0.0) Pillar Metric Result Context S (State) Reactive Core Speed 5.0151 µs/op 30,000 updates stress test T (Translation) Dynamic Interpolation 2.1614 µs/op 10,000 trParams lookups I (Injection) Registry Lookup 1.1688 µs/find Depth 10 dependency resolution N (Navigation) Middleware Latency 1,504 µs 5-layer middleware chain execution Core Sync Latency 803 µs Stream-to-Rx event synchronization

Why SINT is Faster: • Pillar S: SINT avoids Stream overhead by using microtasks for high-fidelity notifications. • Pillar I: Dependency resolution uses O(1) hash lookups in the global registry. • Pillar N: Navigation is context-less, removing the need for heavy widget tree lookups during routing.

The Four Pillars

State Management (S)

Two approaches: Reactive (.obs + Obx) and Simple (SintBuilder).

// Reactive
var count = 0.obs;
Obx(() => Text('${count.value}'));

// Simple
SintBuilder<Controller>(
  builder: (_) => Text('${_.counter}'),
)

Full documentation

Injection (I)

Dependency injection without context:

Sint.put(AuthController());
final controller = Sint.find<AuthController>();

Full documentation

Route management without context:

SintMaterialApp(
  getPages: [
    SintPage(name: '/', page: () => Home()),
    SintPage(name: '/details', page: () => Details()),
  ],
)

Sint.toNamed('/details');
Sint.back();
Sint.snackbar('Title', 'Message');

Full documentation

Translation (T)

Internationalization with .tr:

Text('hello'.tr);
Text('welcome'.trParams({'name': 'Serzen'}));
Sint.updateLocale(Locale('es', 'ES'));

Full documentation


Counter App with SINT

void main() => runApp(SintMaterialApp(home: Home()));

class Controller extends SintController {
  var count = 0.obs;
  increment() => count++;
}

class Home extends StatelessWidget {
  @override
  Widget build(context) {
    final c = Sint.put(Controller());
    return Scaffold(
      appBar: AppBar(title: Obx(() => Text("Clicks: ${c.count}"))),
      body: Center(
        child: ElevatedButton(
          child: Text("Go to Other"),
          onPressed: () => Sint.to(Other()),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: c.increment,
      ),
    );
  }
}

class Other extends StatelessWidget {
  final Controller c = Sint.find();
  @override
  Widget build(context) {
    return Scaffold(body: Center(child: Text("${c.count}")));
  }
}

Migration from GetX

  1. Replace get: with sint: in pubspec.yaml
  2. Replace import 'package:get/get.dart' with import 'package:sint/sint.dart'
  3. Your existing Get. calls work — gradually replace with Sint. to remove deprecation warnings
  4. GetMaterialAppSintMaterialApp
  5. GetPageSintPage

Origin & Philosophy

SINT is a hard fork of GetX v5.0.0-rc. After 8 years of accumulated code, GetX's repository became inactive and carried significant unused weight. SINT strips away everything that does not serve the four pillars, resulting in a clean, maintainable foundation built with Clean Architecture principles.

GetX: "Do everything." SINT: "Do the right things."

S + I + N + T — State, Injection, Navigation, Translation. Nothing more, nothing less.


License

SINT is released under the MIT License.

Part of the Open Neom ecosystem.

Libraries

core/sint_core
core/src/domain/enums/smart_management
core/src/domain/errors/bind_error
core/src/domain/errors/obx_error
core/src/domain/extensions/sint_reset
core/src/domain/interfaces/sint_interface
core/src/domain/models/rx_bool
core/src/domain/models/rx_custom
core/src/domain/models/rx_impl
core/src/domain/models/rx_interface
core/src/domain/models/rx_list
core/src/domain/models/rx_map
core/src/domain/models/rx_num
core/src/domain/models/rx_set
core/src/domain/models/rx_string
core/src/domain/typedefs/core_typedefs
core/src/domain/typedefs/legacy_typedefs
core/src/sint_engine
core/src/sint_main
core/src/sint_queue
core/src/utils/log
core/src/utils/testing/wrapper
core/src/utils/testing/wrapper_named
core/src/utils/testing/wrapper_translations
injection/sint_injection
injection/src/bind
injection/src/domain/extensions/injection_extension
injection/src/domain/interfaces/binding
injection/src/domain/interfaces/bindings_interface
injection/src/domain/models/binds
injection/src/domain/models/instance_info
injection/src/domain/typedefs/injection_typedefs
injection/src/lifecycle
injection/src/ui/bind_element
injection/src/ui/binder
navigation/sint_navigation
navigation/src/domain/enums/pop_mode
navigation/src/domain/enums/prevent_duplicate_handling_mode
navigation/src/domain/enums/row_style
navigation/src/domain/enums/snack_hover_state
navigation/src/domain/enums/snackbar_position
navigation/src/domain/enums/snackbar_status
navigation/src/domain/enums/snackbar_style
navigation/src/domain/enums/transition
navigation/src/domain/extensions/bottomsheet_extension
navigation/src/domain/extensions/context_extensions
navigation/src/domain/extensions/dialog_extension
navigation/src/domain/extensions/event_loop_extension
navigation/src/domain/extensions/first_where_extension
navigation/src/domain/extensions/overlay_extension
navigation/src/domain/extensions/page_arg_extension
navigation/src/domain/extensions/snackbar_extension
navigation/src/domain/interfaces/custom_transition
navigation/src/domain/interfaces/sint_middleware
navigation/src/domain/mixins/sint_navigation_mixin
navigation/src/domain/mixins/sint_transition_mixin
navigation/src/domain/models/config_data
navigation/src/domain/models/path_decoded
navigation/src/domain/models/route_data
navigation/src/domain/models/route_node
navigation/src/domain/models/routing
navigation/src/router/circular_reveal_clipper
navigation/src/router/index
navigation/src/router/middleware_runner
navigation/src/router/page_redirect
navigation/src/router/page_settings
navigation/src/router/route_decoder
navigation/src/router/route_match_result
navigation/src/router/route_matcher
navigation/src/router/route_parser
navigation/src/router/route_tree
navigation/src/router/route_tree_result
navigation/src/router/router_report_manager
navigation/src/router/sint_delegate
navigation/src/router/sint_information_parser
navigation/src/router/sint_navigator
navigation/src/router/sint_page
navigation/src/router/sint_page_route
navigation/src/router/sint_test_mode
navigation/src/router/url_strategy/impl/io_url
navigation/src/router/url_strategy/impl/stub_url
navigation/src/router/url_strategy/impl/web_url
navigation/src/router/url_strategy/url_strategy
navigation/src/sint_navigation_observer
navigation/src/ui/dialog/dialog_route
navigation/src/ui/sint_cupertino_app
navigation/src/ui/sint_material_app
navigation/src/ui/sint_root
navigation/src/ui/snackbar/snackbar
navigation/src/ui/snackbar/snackbar_controller
navigation/src/ui/snackbar/snackbar_queue
navigation/src/ui/transitions/circular_reveal_transition
navigation/src/ui/transitions/fade_in_transition
navigation/src/ui/transitions/left_to_right_fade_transition
navigation/src/ui/transitions/no_transition
navigation/src/ui/transitions/right_to_left_fade_transition
navigation/src/ui/transitions/size_transitions
navigation/src/ui/transitions/slide_down_transition
navigation/src/ui/transitions/slide_left_transition
navigation/src/ui/transitions/slide_right_transition
navigation/src/ui/transitions/slide_top_transition
navigation/src/ui/transitions/zoom_in_transition
navigation/src/ui/widgets/directionality_drag_gesture_recognizer
navigation/src/ui/widgets/sint_back_gesture_controller
navigation/src/ui/widgets/sint_back_gesture_detector
sint
SINT Framework 1.0.0
state_manager/sint_state_manager
state_manager/src/domain/mixins/equality_mixin
state_manager/src/domain/mixins/rx_ticket_provider_mixin
state_manager/src/domain/notify_data
state_manager/src/domain/sint_status
state_manager/src/domain/typedefs/state_typedefs
state_manager/src/engine/get_builder
state_manager/src/engine/list_notifier
state_manager/src/engine/notifier
state_manager/src/engine/sint_controller
state_manager/src/sint_listenable
state_manager/src/ui/obx_reacive_element
state_manager/src/ui/obx_widget
translation/sint_translation
translation/src/domain/extensions/locale_extension
translation/src/domain/extensions/trans_extension
translation/src/domain/interfaces/translations
translation/src/domain/models/intl_host
translation/src/utils/translations_constants