PHPackages                             medz/aliyun-oss - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. medz/aliyun-oss

AbandonedLibrary[File &amp; Storage](/categories/file-storage)

medz/aliyun-oss
===============

The package is Aliyun OSS SDK, And support streamWrapper register.

v1.0.0(9y ago)64172[2 issues](https://github.com/medz/aliyun-oss/issues)MITDartPHP &gt;=5.4CI passing

Since Sep 4Pushed 3mo ago2 watchersCompare

[ Source](https://github.com/medz/aliyun-oss)[ Packagist](https://packagist.org/packages/medz/aliyun-oss)[ Docs](http://medz.cn)[ RSS](/packages/medz-aliyun-oss/feed)WikiDiscussions main Synced 2mo ago

READMEChangelog (4)Dependencies (1)Versions (3)Used By (0)

[![Oref testing](https://github.com/medz/oref/actions/workflows/test.yml/badge.svg)](https://github.com/medz/oref/actions/workflows/test.yml)[![Oref version](https://camo.githubusercontent.com/4a7300e8746116404519f50a5f33b82f8bf42cc58588eed3c4b3a0699147bbf9/68747470733a2f2f696d672e736869656c64732e696f2f7075622f762f6f726566)](https://pub.dev/packages/oref)[![License: MIT](https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667)](LICENSE)[![Ask DeepWiki](https://camo.githubusercontent.com/0f5ae213ac378635adeb5d7f13cef055ad2f7d9a47b36de7b1c67dbe09f609ca/68747470733a2f2f6465657077696b692e636f6d2f62616467652e737667)](https://deepwiki.com/medz/oref)

Oref
====

[](#oref)

A high-performance Flutter state management tool built with [`alien_signals`](https://github.com/medz/alien-signals-dart), Oref is one of the fastest Flutter signals and state management solutions.

Overview
--------

[](#overview)

Much of the pain in state management in Dart &amp; Flutter comes from reacting to changes in given values, because the values themselves are not directly observable. We have to use `StatefulWidget` or other state management tools for state, which use inefficient proactive notifications or a large number of watchers to notify widgets to rebuild, and the boilerplate code is very redundant.

The release of `alien_signals` completely changed Flutter's inefficient state management situation, but Flutter state libraries still require a lot of boilerplate code! Oref completely changes this situation. In Flutter, when a Widget accesses a signal value, if that signal's value changes, the Widget is automatically rebuilt.

```
class Counter extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final count = signal(context, 0);
    void increment() => count.set(count() + 1);

    return Column(children: [
      Text('Count: ${count()}'),
      TextButton(
        onPressed: increment,
        child: Text('click me'),
      )
    ]);
  }
}
```

Signals are magically injected into the BuildContext to provide optimal performance and ergonomic design. In the example above, we access `count()` to get the current value of the signal and complete the responsive binding with the current `Counter`. When the count value is updated, it automatically notifies the Counter to rebuild.

Installation
------------

[](#installation)

You can install by editing your `pubspec.yaml` file:

```
dependencies:
  oref: ^2.8.0
```

Or install by running this command:

```
flutter pub add oref
```

DevTools Extension
------------------

[](#devtools-extension)

Oref ships with a DevTools extension to inspect signals, effects, computed values, collections, and performance snapshots.

1. Run your app in **debug** mode and open Flutter DevTools.
2. In DevTools → Extensions, enable **Oref**. If you want it enabled by default, add a `devtools_options.yaml` next to your app’s `pubspec.yaml`:

```
extensions:
  - oref: true
```

Notes:

- The service extensions register automatically once a signal/computed/effect is created in debug mode.
- The extension relies on DevTools’ VM Service connection, so it only works when DevTools is connected to a running app.
- Web debug is supported; release builds are intentionally disabled.

Documentation
-------------

[](#documentation)

[![Ask DeepWiki](https://camo.githubusercontent.com/0f5ae213ac378635adeb5d7f13cef055ad2f7d9a47b36de7b1c67dbe09f609ca/68747470733a2f2f6465657077696b692e636f6d2f62616467652e737667)](https://deepwiki.com/medz/oref)

You can view details through the [API Reference in pub.dev](https://pub.dev/documentation/oref/latest/oref/) or source code comments.

Agent Skills
------------

[](#agent-skills)

This repo includes Agent Skills under `skills/` for Oref users. They are maintained for agent installation and usage, and provide guided Oref usage, tooling, and troubleshooting references.

Install in one command:

```
npx skills add medz/oref # With NPM
bunx skills add medz/oref # With Bun
```

Analyzer Lints
--------------

[](#analyzer-lints)

Oref provides a custom analyzer plugin with lints for hooks, effects, and signal usage. The new analyzer plugin system (Dart 3.10 / Flutter 3.38+) uses a top-level `plugins` section.

Enable the plugin in your `analysis_options.yaml`:

```
plugins:
  oref: ^2.8.0
```

Suppress a diagnostic in code (optional):

```
// ignore: oref/avoid_hooks_in_control_flow
```

### All lints

[](#all-lints)

#### avoid\_custom\_hooks\_outside\_build

[](#avoid_custom_hooks_outside_build)

Custom hooks must be called inside a build scope or another hook.

**Bad**:

```
void useLocalCounter(BuildContext context) {
  signal(context, 0);
}

void helper(BuildContext context) {
  useLocalCounter(context);
}
```

**Good**:

```
class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    useLocalCounter(context);
    return Widget();
  }
}
```

#### avoid\_hooks\_in\_control\_flow

[](#avoid_hooks_in_control_flow)

Hooks must be called unconditionally at the top level of a build scope.

**Bad**:

```
class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    if (true) {
      signal(context, 0);
    }
    return Widget();
  }
}
```

**Good**:

```
class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final counter = signal(context, 0);
    if (true) {
      counter.set(1);
    }
    return Widget();
  }
}
```

#### avoid\_hooks\_in\_nested\_functions

[](#avoid_hooks_in_nested_functions)

Hooks must not be called inside nested functions within a build scope.

**Bad**:

```
class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    void inner() {
      signal(context, 0);
    }
    inner();
    return Widget();
  }
}
```

**Good**:

```
class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    signal(context, 0);
    return Widget();
  }
}
```

#### use\_build\_context\_for\_hooks

[](#use_build_context_for_hooks)

Optional-context hooks must receive `BuildContext` when called inside build scopes.

**Bad**:

```
class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    signal(null, 0);
    return Widget();
  }
}
```

**Good**:

```
class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    signal(context, 0);
    return Widget();
  }
}
```

#### avoid\_hook\_context\_outside\_build

[](#avoid_hook_context_outside_build)

Passing `BuildContext` to hooks is only allowed in build scopes.

**Bad (optional-context hook outside build)**:

```
void helper(BuildContext context) {
  signal(context, 0);
}
```

**Good (optional-context hook outside build)**:

```
void helper() {
  signal(null, 0);
}
```

**Bad (required-context hook outside build)**:

```
void helper(BuildContext context) {
  watch(context, () => 1);
}
```

**Good (required-context hook inside build)**:

```
class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    watch(context, () => 1);
    return Widget();
  }
}
```

#### avoid\_discarded\_global\_effect

[](#avoid_discarded_global_effect)

Discarding the result of a global effect/scope can leak resources.

**Bad**:

```
class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    effect(null, () {});
    return Widget();
  }
}
```

**Good**:

```
class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final dispose = effect(null, () {});
    return Widget();
  }
}
```

#### avoid\_effect\_cleanup\_outside\_effect

[](#avoid_effect_cleanup_outside_effect)

`onEffectCleanup`/`onEffectDispose` must be called inside `effect()`.

**Bad**:

```
void helper() {
  onEffectCleanup(() {});
}
```

**Good**:

```
void helper(BuildContext context) {
  effect(context, () {
    onEffectCleanup(() {});
  });
}
```

#### avoid\_scope\_dispose\_outside\_scope

[](#avoid_scope_dispose_outside_scope)

`onScopeDispose` must be called inside `effectScope()`.

**Bad**:

```
void helper() {
  onScopeDispose(() {});
}
```

**Good**:

```
void helper(BuildContext context) {
  effectScope(context, () {
    onScopeDispose(() {});
  });
}
```

#### avoid\_writes\_in\_computed

[](#avoid_writes_in_computed)

Avoid writing to signals inside computed getters.

**Bad**:

```
void helper(BuildContext context) {
  final counter = signal(context, 0);
  computed(context, () {
    counter.set(1);
    return counter();
  });
}
```

**Good**:

```
void helper(BuildContext context) {
  final counter = signal(context, 0);
  effect(context, () {
    counter.set(1);
  });
}
```

Sponsors
--------

[](#sponsors)

Oref is an [MIT licensed](https://github.com/medz/spry/blob/main/LICENSE) open source project with its ongoing development made possible entirely by the support of these awesome backers. If you'd like to join them, please consider [sponsoring Seven(@medz)](https://github.com/sponsors/medz) development.

 [ ![sponsors](https://camo.githubusercontent.com/9a58a65d3407a89def6550a84f1d4b29b321b36857772ef54f9828368c0ccdf3/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f6d65647a2f7075626c69632f73706f6e736f72732e74696572732e737667) ](https://github.com/sponsors/medz)

Contributing
------------

[](#contributing)

Thank you to all the people who already contributed to Oref!

[![Contributors](https://camo.githubusercontent.com/44ccccea616e535f46a4eca4fd1633c68077d9ccbca0eb879983dd4f2f64c486/68747470733a2f2f636f6e747269622e726f636b732f696d6167653f7265706f3d6d65647a2f6f726566)](https://github.com/medz/oref/graphs/contributors)

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance54

Moderate activity, may be stable

Popularity18

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3536d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5564821?v=4)[Seven Du](/maintainers/medz)[@medz](https://github.com/medz)

---

Top Contributors

[![medz](https://avatars.githubusercontent.com/u/5564821?v=4)](https://github.com/medz "medz (194 commits)")[![renovate[bot]](https://avatars.githubusercontent.com/in/2740?v=4)](https://github.com/renovate[bot] "renovate[bot] (9 commits)")[![tembo[bot]](https://avatars.githubusercontent.com/in/1223475?v=4)](https://github.com/tembo[bot] "tembo[bot] (1 commits)")

---

Tags

fluttersignalsstate-managementwidgetsphpwrapperstreamwrapperossmedzaliyun-oss-sdk

### Embed Badge

![Health badge](/badges/medz-aliyun-oss/health.svg)

```
[![Health](https://phpackages.com/badges/medz-aliyun-oss/health.svg)](https://phpackages.com/packages/medz-aliyun-oss)
```

###  Alternatives

[blueimp/jquery-file-upload

File Upload widget for jQuery.

141.5M18](/packages/blueimp-jquery-file-upload)[alphasnow/aliyun-oss-flysystem

Flysystem adapter for the Aliyun storage

14249.2k4](/packages/alphasnow-aliyun-oss-flysystem)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
