{"id":13770348,"url":"https://github.com/theseion/Fuel","last_synced_at":"2025-05-11T03:32:49.049Z","repository":{"id":29278748,"uuid":"32811479","full_name":"theseion/Fuel","owner":"theseion","description":"Fuel, the Smalltalk object serializer","archived":false,"fork":false,"pushed_at":"2025-04-19T06:26:22.000Z","size":14728,"stargazers_count":28,"open_issues_count":26,"forks_count":13,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-19T13:41:22.806Z","etag":null,"topics":["pharo","serializer","smalltalk","squeak"],"latest_commit_sha":null,"homepage":"https://theseion.github.io/Fuel","language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theseion.png","metadata":{"files":{"readme":"README.md","changelog":"changes.log","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-03-24T16:41:45.000Z","updated_at":"2025-04-19T06:26:27.000Z","dependencies_parsed_at":"2023-09-30T08:45:52.829Z","dependency_job_id":"375681e9-66c9-4dcf-b34c-fc873664feb9","html_url":"https://github.com/theseion/Fuel","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theseion%2FFuel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theseion%2FFuel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theseion%2FFuel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theseion%2FFuel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theseion","download_url":"https://codeload.github.com/theseion/Fuel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253514352,"owners_count":21920327,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pharo","serializer","smalltalk","squeak"],"created_at":"2024-08-03T17:00:36.444Z","updated_at":"2025-05-11T03:32:44.033Z","avatar_url":"https://github.com/theseion.png","language":"Smalltalk","funding_links":[],"categories":["Data interexchange format"],"sub_categories":[],"readme":" ![Fuel](resources/logo-fuel-header.png)\n\n- [Description](#description)\n- [Properties](#properties)\n- [Installation](#installation)\n- [Report bugs](#report-bugs)\n- [More documentation](#more-documentation)\n# Description\nA general-purpose object serialization framework developed in [Pharo](https://pharo.org). Fuel is developed under the [MIT license](http://www.opensource.org/licenses/mit-license.php).\n##### Concrete\nWe don't aspire to have a dialect-interchange format. This enables us to serialize special objects like contexts, block closures, exceptions, compiled methods and classes. Although there are ports to other dialects, Fuel development is Pharo-centric.\n##### Flexible\nDepending on the context, there could be multiple ways of serializing the same object. For example, a class can be considered either a global or a regular object. In the former case, it will be encoded just its name; in the latter case, the class will be encoded in detail, with its method dictionary, etc.\n##### Fast\nWe worry about to have the best performance. We developed a complete benchmark suite to help analyse the performance with diverse sample sets, as well as compare against other serializers. Our pickling algorithm allows outstanding materialization performance, as well as very good serialization performance too.\n##### Object-Oriented Design\nFrom the beginning it was a constraint to have a good object-oriented design and to do not need any special support from the VM. In addition, Fuel has a complete test suite, with a high coverage. We also worry about writing comments on classes and methods.\n\n# Projects using Fuel\nWe would love to see your project here too ;)!\n- [Pharo](http://pharo.org): Fuel comes baked into Pharo\n- [Snapdump](https://github.com/zweidenker/snapdump): Create and manage runtime snapshots in Pharo\n- [Computer-World](https://github.com/seandenigris/Computer-World): Make computing objects come alive\n- [Resources-Live](https://github.com/seandenigris/Resources-Live): Not files, live resources!\n- [SimplePersistence](https://github.com/seandenigris/Simple-Persistence): Hassle free model backups\n- [Launchpad](https://github.com/ba-st/Launchpad): Application entry point command line handler template for Pharo\n\n# Status of automated builds\n### Pharo\n\n[![Build status: Pharo 13 (alpha)](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-13.0.yaml?branch=Pharo13\u0026label=Pharo%2013%20(alpha)\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-13.0.yaml)\n[![Build status: Pharo 12](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-12.0.yaml?branch=Pharo12\u0026label=Pharo%2012\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-12.0.yaml)\n\nmaster | 5.2.2 | 5.1.0 | 5.0.6 | 4.1.1 | 3.0.4 | 3.0.3 |\n ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------- |\n[![Build status: Pharo 11.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-11.0.yaml?branch=master\u0026label=11.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-11.0.yaml) | [![Build status: Pharo 11.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-11.0.yaml?branch=5.2.2\u0026label=11.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-11.0.yaml) | - | - | - | - | - |\n[![Build status: Pharo 10.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-10.0.yaml?branch=master\u0026label=10.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-10.0.yaml) | [![Build status: Pharo 10.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-10.0.yaml?branch=5.2.2\u0026label=10.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-10.0.yaml) | [![Build status: Pharo 10.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-10.0.yaml?branch=5.1.0\u0026label=10.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-10.0.yaml) | [![Build status: Pharo 10.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-10.0.yaml?branch=5.0.6\u0026label=10.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-10.0.yaml) | [![Build status: Pharo 10.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-10.0.yaml?branch=4.1.1\u0026label=10.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-10.0.yaml) | [![Build status: Pharo 10.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-10.0.yaml?branch=3.0.4\u0026label=10.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-10.0.yaml) | [![Build status: Pharo 10.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-10.0.yaml?branch=3.0.3\u0026label=10.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-10.0.yaml) |\n[![Build status: Pharo 9.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-9.0.yaml?branch=master\u0026label=9.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-9.0.yaml) | [![Build status: Pharo 9.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-9.0.yaml?branch=5.2.2\u0026label=9.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-9.0.yaml) | [![Build status: Pharo 9.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-9.0.yaml?branch=5.1.0\u0026label=9.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-9.0.yaml) | [![Build status: Pharo 9.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-9.0.yaml?branch=5.0.6\u0026label=9.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-9.0.yaml) | [![Build status: Pharo 9.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-9.0.yaml?branch=4.1.1\u0026label=9.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-9.0.yaml) | [![Build status: Pharo 9.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-9.0.yaml?branch=3.0.4\u0026label=9.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-9.0.yaml) | [![Build status: Pharo 9.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-9.0.yaml?branch=3.0.3\u0026label=9.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-9.0.yaml) |\n[![Build status: Pharo 8.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-8.0.yaml?branch=master\u0026label=8.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-8.0.yaml) | [![Build status: Pharo 8.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-8.0.yaml?branch=5.2.2\u0026label=8.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-8.0.yaml) | [![Build status: Pharo 8.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-8.0.yaml?branch=5.1.0\u0026label=8.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-8.0.yaml) | [![Build status: Pharo 8.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-8.0.yaml?branch=5.0.6\u0026label=8.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-8.0.yaml) | [![Build status: Pharo 8.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-8.0.yaml?branch=4.1.1\u0026label=8.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-8.0.yaml) | [![Build status: Pharo 8.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-8.0.yaml?branch=3.0.4\u0026label=8.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-8.0.yaml) | [![Build status: Pharo 8.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-8.0.yaml?branch=3.0.3\u0026label=8.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-8.0.yaml) |\n[![Build status: Pharo 7.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-7.0.yaml?branch=master\u0026label=7.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-7.0.yaml) | [![Build status: Pharo 7.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-7.0.yaml?branch=5.2.2\u0026label=7.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-7.0.yaml) | [![Build status: Pharo 7.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-7.0.yaml?branch=5.1.0\u0026label=7.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-7.0.yaml) | [![Build status: Pharo 7.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-7.0.yaml?branch=5.0.6\u0026label=7.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-7.0.yaml) | [![Build status: Pharo 7.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-7.0.yaml?branch=4.1.1\u0026label=7.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-7.0.yaml) | [![Build status: Pharo 7.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-7.0.yaml?branch=3.0.4\u0026label=7.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-7.0.yaml) | [![Build status: Pharo 7.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/pharo-7.0.yaml?branch=3.0.3\u0026label=7.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/pharo-7.0.yaml) |\n\n### Squeak\nmaster | 5.2.2 | 5.1.0 | 5.0.6 | 4.1.1 | 3.0.4 | 3.0.3 |\n------------- | ------------- | ------------- | ------------- | ----------- | ------------ | ------------- |\n[![Build status: Squeak alpha](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-alpha.yaml?branch=master\u0026label=alpha\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-alpha.yaml) | [![Build status: Squeak alpha](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-alpha.yaml?branch=5.2.2\u0026label=alpha\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-alpha.yaml) | [![Build status: Squeak alpha](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-alpha.yaml?branch=5.1.0\u0026label=alpha\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-alpha.yaml) | [![Build status: Squeak alpha](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-alpha.yaml?branch=5.0.6\u0026label=alpha\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-alpha.yaml) |\n[![Build status: Squeak 6.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-6.0.yaml?branch=master\u0026label=6.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-6.0.yaml) | [![Build status: Squeak 6.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-6.0.yaml?branch=5.2.2\u0026label=6.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-6.0.yaml) | [![Build status: Squeak 6.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-6.0.yaml?branch=5.1.0\u0026label=6.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-6.0.yaml) | [![Build status: Squeak 6.0](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-6.0.yaml?branch=5.0.6\u0026label=6.0\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-6.0.yaml) |\n[![Build status: Squeak 5.3](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-5.3.yaml?branch=master\u0026label=5.3\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-5.3.yaml) | [![Build status: Squeak 5.3](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-5.3.yaml?branch=5.2.2\u0026label=5.3\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-5.3.yaml) | [![Build status: Squeak 5.3](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-5.3.yaml?branch=5.1.0\u0026label=5.3\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-5.3.yaml) | [![Build status: Squeak 5.3](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-5.3.yaml?branch=5.0.6\u0026label=5.3\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-5.3.yaml) | [![Build status: Squeak 5.3](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-5.3.yaml?branch=4.1.1\u0026label=5.3\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-5.3.yaml) | [![Build status: Squeak 5.3](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-5.3.yaml?branch=3.0.4\u0026label=5.3\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-5.3.yaml) | [![Build status: Squeak 5.3](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-5.3.yaml?branch=3.0.3\u0026label=5.3\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-5.3.yaml) |\n[![Build status: Squeak 5.2](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-5.2.yaml?branch=master\u0026label=5.2\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-5.2.yaml) | [![Build status: Squeak 5.2](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-5.2.yaml?branch=5.2.2\u0026label=5.2\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-5.2.yaml) | [![Build status: Squeak 5.2](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-5.2.yaml?branch=5.1.0\u0026label=5.2\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-5.2.yaml) | [![Build status: Squeak 5.2](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-5.2.yaml?branch=5.0.6\u0026label=5.2\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-5.2.yaml) | [![Build status: Squeak 5.2](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-5.2.yaml?branch=4.1.1\u0026label=5.2\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-5.2.yaml) | [![Build status: Squeak 5.2](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-5.2.yaml?branch=3.0.4\u0026label=5.2\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-5.2.yaml) | [![Build status: Squeak 5.2](https://img.shields.io/github/actions/workflow/status/theseion/fuel/squeak-5.2.yaml?branch=3.0.3\u0026label=5.2\u0026logo=github)](https://github.com/theseion/Fuel/actions/workflows/squeak-5.2.yaml) |\n\n# Properties\n- Binary format.\n- Object-Oriented design.\n- No special VM-support needed.\n- Modular (clear division in packages).\n- Can serialize/materialize not only plain objects but also classes, traits, methods, closures, contexts, packages, etc.\n- Support for global references.\n- Very customizable: ignore certain instance variables, substitute objects by others, pre and post serialization and materialization actions, etc.\n- Supports class rename and class reshape.\n- Good test coverage (over 700 unit tests).\n- Large suite of benchmarks.\n\n\n# Installation\n\n## Pharo \u003e= 12\nAs of Pharo 12, Fuel will no longer be backwards compatible and each version\nwill live on a separate branch.\n\n```\nMetacello new\n    repository: 'github://theseion/Fuel:Pharo12/repository';\n    baseline: 'Fuel';\n    load.\n```\n\n## Pharo \u003e= 7.0\n```smalltalk\nMetacello new\n    repository: 'github://theseion/Fuel:5.2.2/repository';\n    baseline: 'Fuel';\n    load.\n```\n\n## Pharo \u003e= 3 and \u003c= 6.1\n```smalltalk\nMetacello new\n    repository: 'http://smalltalkhub.com/mc/Pharo/Fuel/main';\n    configuration: 'Fuel';\n    load.\n```\n\n\u003cdetails\u003e\n  \u003csummary\u003ePharo \u003c 3\u003c/summary\u003e\n\n```smalltalk\nGofer new\n    url: 'http://smalltalkhub.com/mc/Pharo/Fuel/main';\n    package: 'ConfigurationOfFuel';\n    load.\n(Smalltalk at: #ConfigurationOfFuel) load.\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003ePharo 1.1.1\u003c/summary\u003e\n  \n```smalltalk\nGofer new\n    url: 'http://smalltalkhub.com/mc/Pharo/Fuel/main';\n    package: 'ConfigurationOfFuel';\n    load.\n(Smalltalk at: #ConfigurationOfFuel) project load: '1.9.4'.\n```\n\u003c/details\u003e\n\n## Squeak \u003e= 5.2\n```smalltalk\nMetacello new\n    repository: 'github://theseion/Fuel:5.2.2/repository';\n    baseline: 'Fuel';\n    load.\n```\n\n## Squeak \u003e= 4.1 and \u003c= 5.1\n```smalltalk\nInstaller monticello\n    http: 'http://smalltalkhub.com/mc/Pharo/Fuel/main';\n    addPackage: 'ConfigurationOfFuel';\n    install.\n(Smalltalk at: #ConfigurationOfFuel) load.\n```\n\n# Report bugs\nYou may very well find something that is broken. When you do, please open an issue in the [GitHub bug tracker](https://github.com/theseion/Fuel/issues) and we'll get back to you promptly.\n\n# Documentation\nThe documentation is generated from this repository and lives [here](https://theseion.github.io/Fuel).\n\n# Origins\nFuel started its life as a thesis project by [@marianopeck](https://github.com/marianopeck) at [RMoD, Inria](https://rmod.inria.fr/web).\n[@tinchodias](https://github.com/tinchodias) later worked on it as part of his own work (also at RMoD).\n\n\nThe Fuel team would like to thank RMoD and especially [@Ducasse](https://github.com/Ducasse) for the support and for letting us continue development as an open source project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheseion%2FFuel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheseion%2FFuel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheseion%2FFuel/lists"}