typestate

Proc-macro typestate DSL for Rust

https://github.com/rustype/typestate-rs

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.6%) to scientific vocabulary

Keywords

automata dsl macro rust state-machine typestate
Last synced: 6 months ago · JSON representation ·

Repository

Proc-macro typestate DSL for Rust

Basic Info
Statistics
  • Stars: 151
  • Watchers: 4
  • Forks: 11
  • Open Issues: 18
  • Releases: 0
Topics
automata dsl macro rust state-machine typestate
Created about 5 years ago · Last pushed over 2 years ago
Metadata Files
Readme Contributing License Citation

README.md

#[typestate]

github

This library provides developers with a macro to design typestated objects.

toml [dependencies] typestate = "0.8.0"

Compiler support: requires rustc 1.42+

Documentation

If you're only interested in getting up and running with typestate, the documentation might be more useful for you. You can consult it in https://docs.rs/typestate/0.8.0/typestate/

If you're interested in learning more about the typestate crate, or typestates in Rust, you can read The Typestate Book in https://rustype.github.io/typestate-rs/.

Citing typestate

If you find typestate useful in your work, we kindly request you cite the following paper:

bibtex @inproceedings{10.1145/3475061.3475082, author = {Duarte, Jos\'{e} and Ravara, Ant\'{o}nio}, title = {Retrofitting Typestates into Rust}, year = {2021}, url = {https://doi.org/10.1145/3475061.3475082}, doi = {10.1145/3475061.3475082}, booktitle = {25th Brazilian Symposium on Programming Languages}, pages = {83–91}, numpages = {9}, series = {SBLP'21} }

Alternatively, you can cite the extended version:

bibtex @article{10.1016/j.cola.2022.101154, title = {Taming stateful computations in Rust with typestates}, journal = {Journal of Computer Languages}, pages = {101154}, year = {2022}, issn = {2590-1184}, doi = {10.1016/j.cola.2022.101154}, url = {https://doi.org/10.1016/j.cola.2022.101154}, author = {Duarte, Jos\'{e} and Ravara, Ant\'{o}nio},

Publications

Owner

  • Name: rustype
  • Login: rustype
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.1.0
message: "If you use this library in your project, please cite it as below."
authors:
  - family-names: "Duarte"
    given-names: "José"
  - family-names: "Ravara"
    given-names: "António"
    orcid: https://orcid.org/0000-0001-8074-0380
title: "Retrofitting Typestates into Rust"
doi: 10.1145/3475061.3475082
version: 0.8.0
release-date: 2021-07-16
url: "https://github.com/rustype/typestate-rs/"

GitHub Events

Total
  • Watch event: 8
Last Year
  • Watch event: 8

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 456
  • Total Committers: 6
  • Avg Commits per committer: 76.0
  • Development Distribution Score (DDS): 0.145
Past Year
  • Commits: 4
  • Committers: 2
  • Avg Commits per committer: 2.0
  • Development Distribution Score (DDS): 0.25
Top Committers
Name Email Commits
José Duarte j****e@c****t 390
José Duarte j****e@c****! 57
José Duarte d****j@g****m 6
Bernd Busse b****d@b****e 1
José Duarte d****e@d****m 1
Sage Mitchell d****v@m****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 29
  • Total pull requests: 17
  • Average time to close issues: 17 days
  • Average time to close pull requests: about 11 hours
  • Total issue authors: 14
  • Total pull request authors: 5
  • Average comments per issue: 1.97
  • Average comments per pull request: 0.18
  • Merged pull requests: 15
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 1.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jmg-duarte (6)
  • jquesada2016 (6)
  • Dessix (4)
  • andrew-otiv (2)
  • skaunov (1)
  • Michael-J-Ward (1)
  • dbrgn (1)
  • elahn (1)
  • bobbbay (1)
  • tomasalagoa (1)
  • mx00s (1)
  • IAMSolaara (1)
  • btrepp (1)
  • Marcato0o (1)
Pull Request Authors
  • jmg-duarte (13)
  • mx00s (1)
  • sirhcel (1)
  • tryone144 (1)
  • lopsided98 (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 3
  • Total downloads:
    • cargo 68,897 total
  • Total dependent packages: 5
    (may contain duplicates)
  • Total dependent repositories: 3
    (may contain duplicates)
  • Total versions: 49
  • Total maintainers: 1
crates.io: typestate

A proc macro DSL for typestates

  • Versions: 24
  • Dependent Packages: 2
  • Dependent Repositories: 1
  • Downloads: 33,573 Total
Rankings
Dependent packages count: 12.2%
Stargazers count: 12.7%
Average: 15.0%
Forks count: 15.6%
Dependent repos count: 16.7%
Downloads: 17.7%
Maintainers (1)
Last synced: 6 months ago
crates.io: typestate-proc-macro

A proc macro DSL for typestates

  • Versions: 15
  • Dependent Packages: 1
  • Dependent Repositories: 2
  • Downloads: 24,090 Total
Rankings
Stargazers count: 12.7%
Dependent repos count: 13.3%
Forks count: 15.6%
Average: 15.8%
Dependent packages count: 18.2%
Downloads: 19.3%
Maintainers (1)
Last synced: 6 months ago
crates.io: typestate-automata

An automata library for the typestate crate

  • Versions: 10
  • Dependent Packages: 2
  • Dependent Repositories: 0
  • Downloads: 11,234 Total
Rankings
Dependent packages count: 11.4%
Stargazers count: 12.6%
Forks count: 15.4%
Average: 20.5%
Dependent repos count: 29.3%
Downloads: 33.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

Cargo.toml cargo
  • rustversion 1.0 development
  • trybuild 1.0 development
  • aquamarine ^0.1.9
  • typestate-proc-macro 0.8.0