{"id":24865224,"url":"https://github.com/diku-dk/sml-pickle","last_synced_at":"2026-01-06T22:12:36.122Z","repository":{"id":148050629,"uuid":"254197627","full_name":"diku-dk/sml-pickle","owner":"diku-dk","description":"Standard ML package for serialisation and deserialisation","archived":false,"fork":false,"pushed_at":"2023-10-01T09:42:57.000Z","size":45,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-01-31T23:58:07.191Z","etag":null,"topics":["smlpkg"],"latest_commit_sha":null,"homepage":null,"language":"Standard ML","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/diku-dk.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2020-04-08T20:49:59.000Z","updated_at":"2024-10-16T10:27:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"30a96124-297c-4eee-830c-625468565cb8","html_url":"https://github.com/diku-dk/sml-pickle","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diku-dk%2Fsml-pickle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diku-dk%2Fsml-pickle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diku-dk%2Fsml-pickle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diku-dk%2Fsml-pickle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/diku-dk","download_url":"https://codeload.github.com/diku-dk/sml-pickle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245717641,"owners_count":20661144,"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":["smlpkg"],"created_at":"2025-01-31T23:58:10.468Z","updated_at":"2026-01-06T22:12:36.090Z","avatar_url":"https://github.com/diku-dk.png","language":"Standard ML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sml-pickle [![CI](https://github.com/diku-dk/sml-pickle/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-pickle/actions)\n\nStandard ML package for serialising and deserialising data structures.\n\n## Overview of MLB files\n\n- `lib/github.com/diku-dk/sml-random/pickle.mlb`:\n\n  - **signature** [`BITSTREAM`](lib/github.com/diku-dk/sml-pickle/bitstream.sig)\n  - **structure** `Bitstream` :\u003e `BITSTREAM`\n  - **structure** `Bytestream` :\u003e `BITSTREAM`\n\n  - **signature** [`PICKLE`](lib/github.com/diku-dk/sml-pickle/pickle.sig)\n  - **functor** `Pickle` (`S` : `BITSTREAM`)  : `PICKLE`\n  - **structure** `Pickle` :\u003e `PICKLE` (uses `Bytestream`)\n\nUse `Bitstream` to generate the most concise pickles and `Bytestream`\nfor the fastest implementation. The `Pickle` structure is the result\nof applying the `Pickle` functor to the `Bytestream` structure.\n\n## Use of the package\n\nThis library is set up to work well with the SML package manager\n[smlpkg](https://github.com/diku-dk/smlpkg).  To use the package, in\nthe root of your project directory, execute the command:\n\n```\n$ smlpkg add github.com/diku-dk/sml-pickle\n```\n\nThis command will add a _requirement_ (a line) to the `sml.pkg` file in your\nproject directory (and create the file, if there is no file `sml.pkg`\nalready).\n\nTo download the library into the directory\n`lib/github.com/diku-dk/sml-pickle`, execute the command:\n\n```\n$ smlpkg sync\n```\n\nYou can now reference the `mlb`-file using relative paths from within\nyour project's `mlb`-files.\n\nNotice that you can choose either to treat the downloaded package as\npart of your own project sources (vendoring) or you can add the\n`sml.pkg` file to your project sources and make the `smlpkg sync`\ncommand part of your build process.\n\n## Implementation details\n\nThe implementation is based on the paper:\n\n- Martin Elsman. __Type-Specialized Serialization with Sharing__. In _Sixth\n  Symposium on Trends in Functional Programming (TFP ‘05)_. Tallinn,\n  Estonia. September 2005. [pdf](https://elsman.com/pdf/TFP05final_mael.pdf).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiku-dk%2Fsml-pickle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiku-dk%2Fsml-pickle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiku-dk%2Fsml-pickle/lists"}