PHPackages                             revosystems/thrust - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. revosystems/thrust

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

revosystems/thrust
==================

A simple resource crud generator

11.8.1(1y ago)031.7k4[1 PRs](https://github.com/revosystems/thrust/pulls)MITPHPPHP ^8.0

Since Sep 18Pushed 1y ago1 watchersCompare

[ Source](https://github.com/revosystems/thrust)[ Packagist](https://packagist.org/packages/revosystems/thrust)[ RSS](/packages/revosystems-thrust/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (10)Dependencies (6)Versions (320)Used By (0)

\#Thrust

Fields
------

[](#fields)

- Validation rules
- Show in Index / Edit
- Visibility

### Basic Types

[](#basic-types)

- Check
- Check Switch
- Color
- Currency
- Date
- Datetime
- Email
- Hidden
- Integer
- Link
- Password
- Percentage
- Range
- Select
- Text
- Textarea
- Time
- Url

### Powered up

[](#powered-up)

- Panel
- Image
- Place
- Gravatar
- ParentId

### Relationships

[](#relationships)

- HasMany
- HasOne
- Belongs to
- Belongs to many

### Resource

[](#resource)

- Sortable
- Search
- Pagination
- Single resource
- Single resource search
- Automatic with
- Main Actions
- Row Actions
- Inline Edit
- Save and continue
- Table density
- Uses laravel policies for the crud related actions

Events
------

[](#events)

It uses the standard Laravel events, but if you want to add some events only on Thrust pages you can do it like this in you `AppServiceProvider`

```
    Thrust::serving(function () {
        User::observe(UserObserver::class);
    });

```

This way the observers will only be registered when using a thrust function

TODO:
-----

[](#todo)

\[x\] Migrate to select2 4.0
\[x\] Make check fields to be toggable from the index
\[x\] Pin validation not working (digits 4)
\[x\] Update validation
\[x\] Configurable route prefix
\[x\] Make the service provider deffered as it doesn't need to be called in the API
\[x\] Panel visibility by check and select
\[x\] Make visibleWhen (for checkboxes, or type of printers... etc)
\[x\] BelongsTo many ajax searchable
\[x\] Prunable files, should be deleted when deleting resource
\[x\] Update saveOrder function to use a thrust one instead of the retail/xef yet
\[x\] Update saveOrder function to use the plural version of the resource name (the one we use on whole thrust) instead of the singular one
\[x\] ThrustRelationshipController to use the $relationDisplayName instead of `name`
\[x\] Employee, photo upload...
\[x\] Add save and continue editing functionality
\[x\] Inline editing!
\[x\] Table density
\[x\] Custom events to be different than the standard ones?
\[x\] Quan sortable, afegir x defecte la main action save order
\[x\] Make the resource found in app service provider recursive into thrust directory ?
\[x\] Improved ResourceFilters\\Search by words, fer-ho per el primer fields nomes?
\[x\] Search through relationships
\[\] Save image in thrust to use the same route as display
\[\] Relationship rules, apply to field, and should apply to foreing\_key when saving
\[\] Use the search route into searcher, and pass the search parameter to query instead of a new url path parameter
\[\] Delete validation
\[\] Make sortable relationships (right now it uses the relationship name instead of the underling field)
\[\] Add latlang to algolia places search?
\[\] Search limitar-lo a 100 (configurable) sense pagination
\[\] Make hideWhen and showWhen to make it work with Array fields

###  Health Score

46

—

FairBetter than 93% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity86

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 60.3% 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

Every ~9 days

Total

241

Last Release

545d ago

Major Versions

9.9.19 → 10.0.112024-02-23

9.9.20 → 10.0.162024-03-15

9.9.21 → 10.0.172024-03-21

9.9.22 → 10.0.252024-04-10

10.0.60 → 11.0.02024-06-06

### Community

Maintainers

![](https://www.gravatar.com/avatar/13aa4a25aaa44beac32fbd47c7a3c3b76b0ad7754e75600f8b7e229815bdd8aa?d=identicon)[revosystems](/maintainers/revosystems)

---

Top Contributors

[![BadChoice](https://avatars.githubusercontent.com/u/93900?v=4)](https://github.com/BadChoice "BadChoice (482 commits)")[![MartiSalaMorral](https://avatars.githubusercontent.com/u/65666906?v=4)](https://github.com/MartiSalaMorral "MartiSalaMorral (81 commits)")[![PauRevo](https://avatars.githubusercontent.com/u/35812841?v=4)](https://github.com/PauRevo "PauRevo (57 commits)")[![kiriamcf-revo](https://avatars.githubusercontent.com/u/162309993?v=4)](https://github.com/kiriamcf-revo "kiriamcf-revo (54 commits)")[![alexrevo](https://avatars.githubusercontent.com/u/102517594?v=4)](https://github.com/alexrevo "alexrevo (47 commits)")[![draude](https://avatars.githubusercontent.com/u/2104167?v=4)](https://github.com/draude "draude (17 commits)")[![dadraude](https://avatars.githubusercontent.com/u/141412796?v=4)](https://github.com/dadraude "dadraude (16 commits)")[![alexdenizg](https://avatars.githubusercontent.com/u/141121619?v=4)](https://github.com/alexdenizg "alexdenizg (13 commits)")[![JordiFL-Revo](https://avatars.githubusercontent.com/u/105804865?v=4)](https://github.com/JordiFL-Revo "JordiFL-Revo (12 commits)")[![PauBenetPrat](https://avatars.githubusercontent.com/u/8748692?v=4)](https://github.com/PauBenetPrat "PauBenetPrat (6 commits)")[![jordi1704](https://avatars.githubusercontent.com/u/6200974?v=4)](https://github.com/jordi1704 "jordi1704 (4 commits)")[![adriamt](https://avatars.githubusercontent.com/u/11394100?v=4)](https://github.com/adriamt "adriamt (3 commits)")[![jdivins](https://avatars.githubusercontent.com/u/1632358?v=4)](https://github.com/jdivins "jdivins (2 commits)")[![sergibaro](https://avatars.githubusercontent.com/u/62110125?v=4)](https://github.com/sergibaro "sergibaro (2 commits)")[![vicenthy](https://avatars.githubusercontent.com/u/3986111?v=4)](https://github.com/vicenthy "vicenthy (2 commits)")[![kodjunkie](https://avatars.githubusercontent.com/u/21959017?v=4)](https://github.com/kodjunkie "kodjunkie (1 commits)")[![aleixgil](https://avatars.githubusercontent.com/u/29859922?v=4)](https://github.com/aleixgil "aleixgil (1 commits)")

### Embed Badge

![Health badge](/badges/revosystems-thrust/health.svg)

```
[![Health](https://phpackages.com/badges/revosystems-thrust/health.svg)](https://phpackages.com/packages/revosystems-thrust)
```

###  Alternatives

[wireui/wireui

TallStack components

1.8k1.3M16](/packages/wireui-wireui)[ramonrietdijk/livewire-tables

Dynamic tables for models with Laravel Livewire

21147.4k](/packages/ramonrietdijk-livewire-tables)[symfony/object-mapper

Provides a way to map an object to another object

34885.7k18](/packages/symfony-object-mapper)[symfony/ux-cropperjs

Cropper.js integration for Symfony

19280.3k3](/packages/symfony-ux-cropperjs)

PHPackages © 2026

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