A code generator to reduce repetitive tasks and build high-quality Rust libraries. πŸ¦€

Overview

LibMake

A code generator to reduce repetitive tasks and build high-quality Rust libraries

Made With Rust Crates.io Lib.rs Docs.rs License Codecov

Welcome to libmake πŸ‘‹

libmake Banner

Website β€’ Documentation β€’ Report Bug β€’ Request Feature β€’ Contributing Guidelines

Table of Contents πŸ“–

Overview πŸ“–

LibMake is a tool designed to quickly help creating high-quality Rust libraries by generating a set of pre-filled and pre-defined templated files. This opinionated boilerplate scaffolding tool aims to greatly reduces development time and minimizes repetitive tasks, allowing you to focus on your business logic while enforcing standards, best practices, consistency, and providing style guides for your library.

With LibMake, you can easily generate a new Rust library code base structure with all the necessary files, layouts, build configurations, code, tests, benchmarks, documentation, and much more in a matter of seconds.

The library is designed to be used as a command-line tool. It is available on Crates.io and Lib.rs.

Features ✨

LibMake offers the following features and benefits:

  • Create your Rust library with ease using the command line interface or by providing a configuration file in CSV, JSON, TOML, or YAML format.
  • Rapidly generate new library projects with a pre-defined structure and boilerplate code that you can customize with your own template.
  • Generate a library pre-defined GitHub Actions workflow to help you automate your library development and testing.
  • Automatically generate basic functions, methods, and macros to get you started with your Rust library.
  • Enforce best practices and standards with starter documentation, test suites, and benchmark suites that are designed to help you get up and running quickly.

Getting Started πŸš€

It takes just a few seconds to get up and running with LibMake.

Installation

To install LibMake, you need to have the Rust toolchain installed on your machine. You can install the Rust toolchain by following the instructions on the Rust website.

Once you have the Rust toolchain installed, you can install LibMake using the following command:

cargo install libmake

You can then run the help command to see the available options:

libmake --help

Requirements

The minimum supported Rust toolchain version is currently Rust 1.67.1 or later (stable).

Platform support

LibMake is supported and has been tested on the following platforms:

FreeBSD targets 🐬

Target Description Status
x86_64-unknown-freebsd 64-bit FreeBSD on x86-64 βœ… Tested

Linux targets 🐧

Target Description Status
aarch64-unknown-linux-gnu 64-bit Linux systems on ARM architecture βœ… Tested
aarch64-unknown-linux-musl 64-bit Linux systems on ARM architecture βœ… Tested
arm-unknown-linux-gnueabi ARMv6 Linux (kernel 3.2, glibc 2.17) βœ… Tested
armv7-unknown-linux-gnueabihf ARMv7 Linux, hardfloat (kernel 3.2, glibc 2.17) βœ… Tested
i686-unknown-linux-gnu 32-bit Linux (kernel 3.2+, glibc 2.17+) βœ… Tested
i686-unknown-linux-musl 32-bit Linux (kernel 3.2+, musl libc) βœ… Tested
x86_64-unknown-linux-gnu 64-bit Linux (kernel 2.6.32+, glibc 2.11+) βœ… Tested
x86_64-unknown-linux-musl 64-bit Linux (kernel 2.6.32+, musl libc) βœ… Tested

Illumos targets 🌞

Target Description Status
x86_64-unknown-illumos 64-bit Illumos on x86-64 βœ… Tested

macOS targets 🍎

Target Description Status
aarch64-apple-darwin 64-bit macOS on Apple Silicon βœ… Tested
x86_64-apple-darwin 64-bit macOS (10.7 Lion or later) βœ… Tested

The GitHub Actions shows the platforms in which the LibMake library tests are run.

Should you encounter any issues with the library on any of the above platforms, please report a bug. We will do our best to resolve the issue as soon as possible. If you would like to contribute to help us to support additional platforms, please submit a pull request.

Documentation

ℹ️ Info: Do check out our website for more information. You can find our documentation on docs.rs, lib.rs and crates.io.

Usage πŸ“–

Command-line interface

LibMake provides a command-line interface to generate a new library project. There are a few options available to help you get started.

Generate a new library using a CSV file

The following command generates a library template from a CSV file.

Have a look at the tests/data/mylibrary.csv file for an example and feel free to use it for your own library as a template.

libmake --csv tests/data/mylibrary.csv

or locally if you have cloned the repository:

cargo run -- --csv tests/data/mylibrary.csv

Generate a new library using a JSON file

The following command generates a library template from a JSON file.

Have a look at the tests/data/mylibrary.json file for an example and feel free to use it for your own library as a template.

libmake --json tests/data/mylibrary.json

or locally if you have cloned the repository:

cargo run -- --json tests/data/mylibrary.json

Generate a new library using a TOML file

The following command generates a library template from a TOML file.

Have a look at the tests/data/mylibrary.toml file for an example and feel free to use it for your own library as a template.

libmake --toml tests/data/mylibrary.toml

or locally if you have cloned the repository:

cargo run -- --toml tests/data/mylibrary.toml

Generate a new library using a YAML file

The following command generates a library template from a YAML file.

Have a look at the tests/data/mylibrary.yaml file for an example and feel free to use it for your own library as a template.

libmake --yml tests/data/mylibrary.yaml

or locally if you have cloned the repository:

cargo run -- --yml tests/data/mylibrary.yaml

Generate a new library using the command-line interface (CLI) directly

The following command generates a library template using the command-line interface.

libmake \
    --author "John Smith" \
    --build "build.rs" \
    --categories "['category 1', 'category 2', 'category 3']" \
    --description "A Rust library for doing cool things" \
    --documentation "https://docs.rs/my_library" \
    --edition "2021" \
    --email "[email protected]" \
    --homepage "https://my_library.rs" \
    --keywords "['rust', 'library', 'cool']" \
    --license "MIT" \
    --name "my_library" \
    --output "my_library" \
    --readme "README.md" \
    --repository "https://github.com/example/my_library" \
    --rustversion "1.67.1" \
    --version "0.1.0" \
    --website "https://example.com/john-smith"

or locally if you have cloned the repository:

cargo run -- --author "John Smith" \
    --build "build.rs" \
    --categories "['category 1', 'category 2', 'category 3']" \
    --description "A Rust library for doing cool things" \
    --documentation "https://docs.rs/my_library" \
    --edition "2021" \
    --email "[email protected]" \
    --homepage "https://my_library.rs" \
    --keywords "['rust', 'library', 'cool']" \
    --license "MIT" \
    --name "my_library" \
    --output "my_library" \
    --readme "README.md" \
    --repository "https://github.com/example/my_library" \
    --rustversion "1.67.1" \
    --version "0.1.0" \
    --website "https://example.com/john-smith"

Examples

To get started with LibMake, you can use the examples provided in the examples directory of the project.

To run the examples, clone the repository and run the following command in your terminal from the project root directory.

Example Description Command
generate_from_args Generates a library template using the command-line interface. cargo run --example generate_from_args
generate_from_config Generates a library template from a configuration file. cargo run --example generate_from_config
generate_from_csv Generates a library template from a CSV file. cargo run --example generate_from_csv
generate_from_json Generates a library template from a JSON file. cargo run --example generate_from_json
generate_from_toml Generates a library template from a TOML file. cargo run --example generate_from_toml
generate_from_yaml Generates a library template from a YAML file. cargo run --example generate_from_yaml

Semantic Versioning Policy πŸš₯

For transparency into our release cycle and in striving to maintain backward compatibility, libmake follows semantic versioning.

License πŸ“

The project is licensed under the terms of both the MIT license and the Apache License (Version 2.0).

Contribution 🀝

We welcome all people who want to contribute. Please see the contributing instructions for more information.

Contributions in any form (issues, pull requests, etc.) to this project must adhere to the Rust's Code of Conduct.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Acknowledgements πŸ’™

A big thank you to all the awesome contributors of libmake for their help and support. A special thank you goes to the Rust Reddit community for providing a lot of useful suggestions on how to improve this project.

You might also like...
πŸ¦€ Rust-based implementation of a Snowflake Generator which communicates using gRPC

Clawflake Clawflake is a Rust application which implements Twitter Snowflakes and communicates using gRPC. Snowflake ID numbers are 63 bits integers s

Universal changelog generator using conventional commit+ with monorepo support. Written in Rust.
Universal changelog generator using conventional commit+ with monorepo support. Written in Rust.

chlog Universal changelog generator using conventional commit+ with monorepo support. chlog can generate the changelog from the conventional commits w

Nexmark event generator in Rust.

Nexmark-rs The Nexmark benchmark data generator in Rust. Installation cargo install nexmark --features bin Usage Generate nexmark events. Print one pe

Dead simple, minimal SPDX License generator library written in Rust.
Dead simple, minimal SPDX License generator library written in Rust.

lice Dead simple, minimal SPDX License generator library written in Rust. Lice is in beta Install | User Docs | Crate Docs | Reference | Contributing

Pure rust implementation of python's random module with compatible generator behaviour.

pyrand Pure rust implementation of (parts of) python's random module with compatible PRNG behaviour: seeding with equivalent values will yield identic

A simple, fast, easy README generator
A simple, fast, easy README generator

Welcome to Readme Generator A simple, fast, easy README generator. Never worry about READMEs again! What it does: Run the command in your project's di

Boot tools: loader, image generator, etc as a library crate

ArcBoot v0 A uefi bootloader for riscv, arm and x86. Comes in the form of a single executable. the source code contains a single executable target and

Quad-rand implements pseudo-random generator

quad-rand quad-rand implements pseudo-random generator based on rust atomics. Compatible with wasm and any oth

βš™οΈ A cute .gitignore generator with support for custom templates
βš™οΈ A cute .gitignore generator with support for custom templates

Gign A Gitignore Generator Table of Contents Examples Install Custom templates Help Examples # This is how you going to use it probably most of the ti

Comments
  • build(deps): bump actions/upload-artifact from 2 to 3

    build(deps): bump actions/upload-artifact from 2 to 3

    Bumps actions/upload-artifact from 2 to 3.

    Release notes

    Sourced from actions/upload-artifact's releases.

    v3.0.0

    What's Changed

    • Update default runtime to node16 (#293)
    • Update package-lock.json file version to 2 (#302)

    Breaking Changes

    With the update to Node 16, all scripts will now be run with Node 16 rather than Node 12.

    v2.3.1

    Fix for empty fails on Windows failing on upload #281

    v2.3.0 Upload Artifact

    • Optimizations for faster uploads of larger files that are already compressed
    • Significantly improved logging when there are chunked uploads
    • Clarifications in logs around the upload size and prohibited characters that aren't allowed in the artifact name or any uploaded files
    • Various other small bugfixes & optimizations

    v2.2.4

    • Retry on HTTP 500 responses from the service

    v2.2.3

    • Fixes for proxy related issues

    v2.2.2

    • Improved retryability and error handling

    v2.2.1

    • Update used actions/core package to the latest version

    v2.2.0

    • Support for artifact retention

    v2.1.4

    • Add Third Party License Information

    v2.1.3

    • Use updated version of the @action/artifact NPM package

    v2.1.2

    • Increase upload chunk size from 4MB to 8MB
    • Detect case insensitive file uploads

    v2.1.1

    • Fix for certain symlinks not correctly being identified as directories before starting uploads

    v2.1.0

    • Support for uploading artifacts with multiple paths
    • Support for using exclude paths
    • Updates to dependencies

    ... (truncated)

    Commits
    • 0b7f8ab ci(github): update action/download-artifact from v1 to v3 (#312)
    • 013d2b8 Create devcontainer for codespaces + update all dev dependencies (#375)
    • 055b8b3 Bump Actions NPM dependencies (#374)
    • 7a5d483 ci(github): update action/checkout from v2 to v3 (#315)
    • e0057a5 README: Bump actions/checkout to v3 (#352)
    • 7fe6c13 Update to latest actions/publish-action (#363)
    • 83fd05a Bump actions-core to v1.10.0 (#356)
    • 3cea537 Merge pull request #327 from actions/robherley/artifact-1.1.0
    • 849aa77 nvm use 12 & npm run release
    • 4d39869 recompile with correct ncc version
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 0
  • build(deps): bump actions/cache from 2 to 3

    build(deps): bump actions/cache from 2 to 3

    Bumps actions/cache from 2 to 3.

    Release notes

    Sourced from actions/cache's releases.

    v3.0.0

    • This change adds a minimum runner version(node12 -> node16), which can break users using an out-of-date/fork of the runner. This would be most commonly affecting users on GHES 3.3 or before, as those runners do not support node16 actions and they can use actions from github.com via github connect or manually copying the repo to their GHES instance.

    • Few dependencies and cache action usage examples have also been updated.

    v2.1.7

    Support 10GB cache upload using the latest version 1.0.8 of @actions/cache

    v2.1.6

    • Catch unhandled "bad file descriptor" errors that sometimes occurs when the cache server returns non-successful response (actions/cache#596)

    v2.1.5

    • Fix permissions error seen when extracting caches with GNU tar that were previously created using BSD tar (actions/cache#527)

    v2.1.4

    • Make caching more verbose #650
    • Use GNU tar on macOS if available #701

    v2.1.3

    • Upgrades @actions/core to v1.2.6 for CVE-2020-15228. This action was not using the affected methods.
    • Fix error handling in uploadChunk where 400-level errors were not being detected and handled correctly

    v2.1.2

    • Adds input to limit the chunk upload size, useful for self-hosted runners with slower upload speeds
    • No-op when executing on GHES

    v2.1.1

    • Update @actions/cache package to v1.0.2 which allows cache action to use posix format when taring files.

    v2.1.0

    • Replaces the http-client with the Azure Storage SDK for NodeJS when downloading cache content from Azure. This should help improve download performance and reliability as the SDK downloads files in 4 MB chunks, which can be parallelized and retried independently
    • Display download progress and speed
    Changelog

    Sourced from actions/cache's changelog.

    Releases

    3.0.0

    • Updated minimum runner version support from node 12 -> node 16

    3.0.1

    • Added support for caching from GHES 3.5.
    • Fixed download issue for files > 2GB during restore.

    3.0.2

    • Added support for dynamic cache size cap on GHES.

    3.0.3

    • Fixed avoiding empty cache save when no files are available for caching. (issue)

    3.0.4

    • Fixed tar creation error while trying to create tar with path as ~/ home folder on ubuntu-latest. (issue)

    3.0.5

    • Removed error handling by consuming actions/cache 3.0 toolkit, Now cache server error handling will be done by toolkit. (PR)

    3.0.6

    • Fixed #809 - zstd -d: no such file or directory error
    • Fixed #833 - cache doesn't work with github workspace directory

    3.0.7

    • Fixed #810 - download stuck issue. A new timeout is introduced in the download process to abort the download if it gets stuck and doesn't finish within an hour.

    3.0.8

    • Fix zstd not working for windows on gnu tar in issues #888 and #891.
    • Allowing users to provide a custom timeout as input for aborting download of a cache segment using an environment variable SEGMENT_DOWNLOAD_TIMEOUT_MINS. Default is 60 minutes.

    3.0.9

    • Enhanced the warning message for cache unavailablity in case of GHES.

    3.0.10

    • Fix a bug with sorting inputs.
    • Update definition for restore-keys in README.md

    3.0.11

    • Update toolkit version to 3.0.5 to include @actions/core@^1.10.0
    • Update @actions/cache to use updated saveState and setOutput functions from @actions/core@^1.10.0

    3.1.0-beta.1

    • Update @actions/cache on windows to use gnu tar and zstd by default and fallback to bsdtar and zstd if gnu tar is not available. (issue)

    3.1.0-beta.2

    • Added support for fallback to gzip to restore old caches on windows.

    3.1.0-beta.3

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 0
  • Feat/libmake

    Feat/libmake

    Major code upgrade bringing the following

    Features ✨

    LibMake offers the following features and benefits:

    • Create your Rust library with ease using the command line interface or by providing a configuration file in CSV, JSON, TOML, or YAML format.
    • Rapidly generate new library projects with a pre-defined structure and boilerplate code that you can customize with your own template.
    • Generate a library pre-defined GitHub Actions workflow to help you automate your library development and testing.
    • Automatically generate basic functions, methods, and macros to get you started with your Rust library.
    • Enforce best practices and standards with starter documentation, test suites, and benchmark suites that are designed to help you get up and running quickly.
    enhancement 
    opened by sebastienrousseau 0
  • build(deps): update predicates requirement from 2.1.5 to 3.0.1

    build(deps): update predicates requirement from 2.1.5 to 3.0.1

    Updates the requirements on predicates to permit the latest version.

    Changelog

    Sourced from predicates's changelog.

    [3.0.1] - 2023-03-14

    Fixes

    • Show colors for diff header

    [3.0.0] - 2023-03-14

    Compatibility

    • color feature no longer conditionally applies color. Instead color will be applied when formatting as {:#}
    • color-auto feature was removed
    • Update MSRV to 1.64.0

    [2.1.5] - 2022-12-29

    Gixes

    • Further generalized borrowing of predicates with Borrow trait

    [2.1.4] - 2022-12-02

    [2.1.3] - 2022-11-13

    [2.1.2] - 2022-11-05

    Compatibility

    Update MSRV to 1.60

    Fixes

    • Hide internal-only optional dependencies

    [2.1.1] - 2022-01-11

    [2.1.0] - 2021-11-22

    Fixed

    • Report user's value (the actual)
      • Having the caller own this means you won't get intermediates like file paths
      • We already show it for the diff predicate
      • Now we show it in each leaf predicate (like Eq) and when adapting it (like taking a path and loading its file)
    • Remove redundant result with eq_file assertions
    • Clarify that the constant in Eq and Ord predicates is the expected value

    [2.0.3] - 2021-10-07

    [2.0.2] - 2021-08-16

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
Releases(v0.1.3)
  • v0.1.3(Mar 8, 2023)

    Release v0.1.3 - 2023-03-08

    A code generator to reduce repetitive tasks and build high-quality Rust libraries

    [Made With Rust]5 [Crates.io]7 [Lib.rs]9 [Docs.rs]8 [License]2 [Codecov]14

    Welcome to libmake πŸ‘‹

    libmake Banner

    Website β€’ Documentation β€’ Report Bug β€’ Request Feature β€’ Contributing Guidelines

    Overview πŸ“–

    LibMake is a tool designed to quickly help creating high-quality Rust libraries by generating a set of pre-filled and pre-defined templated files. This opinionated boilerplate scaffolding tool aims to greatly reduces development time and minimizes repetitive tasks, allowing you to focus on your business logic while enforcing standards, best practices, consistency, and providing style guides for your library.

    With LibMake, you can easily generate a new Rust library code base structure with all the necessary files, layouts, build configurations, code, tests, benchmarks, documentation, and much more in a matter of seconds.

    The library is designed to be used as a command-line tool. It is available on Crates.io and Lib.rs.

    Features ✨

    LibMake offers the following features and benefits:

    • Create your Rust library with ease using the command line interface or by providing a configuration file in CSV, JSON, TOML, or YAML format.
    • Rapidly generate new library projects with a pre-defined structure and boilerplate code that you can customize with your own template.
    • Automatically generate basic functions, methods, and macros to get you started with your Rust library.
    • Enforce best practices and standards with starter documentation, test suites, and benchmark suites that are designed to help you get up and running quickly.

    Changelog πŸ“š

    • feat(libmake): bug fixes and initial commit v0.1.3 by @sebastienrousseau in https://github.com/sebastienrousseau/libmake/pull/3

    Full Changelog: https://github.com/sebastienrousseau/libmake/compare/v0.1.2...v0.1.3

    Source code(tar.gz)
    Source code(zip)
  • v0.1.2(Mar 8, 2023)

    Release v0.1.2 - 2023-03-08

    A code generator to reduce repetitive tasks and build high-quality Rust libraries

    [Made With Rust]5 [Crates.io]7 [Lib.rs]9 [Docs.rs]8 [License]2 [Codecov]14

    Welcome to libmake πŸ‘‹

    libmake Banner

    Website β€’ Documentation β€’ Report Bug β€’ Request Feature β€’ Contributing Guidelines

    Overview πŸ“–

    LibMake is a tool designed to quickly help creating high-quality Rust libraries by generating a set of pre-filled and pre-defined templated files. This opinionated boilerplate scaffolding tool aims to greatly reduces development time and minimizes repetitive tasks, allowing you to focus on your business logic while enforcing standards, best practices, consistency, and providing style guides for your library.

    With LibMake, you can easily generate a new Rust library code base structure with all the necessary files, layouts, build configurations, code, tests, benchmarks, documentation, and much more in a matter of seconds.

    The library is designed to be used as a command-line tool. It is available on Crates.io and Lib.rs.

    Features ✨

    LibMake offers the following features and benefits:

    • Create your Rust library with ease using the command line interface or by providing a configuration file in CSV, JSON, TOML, or YAML format.
    • Rapidly generate new library projects with a pre-defined structure and boilerplate code that you can customize with your own template.
    • Automatically generate basic functions, methods, and macros to get you started with your Rust library.
    • Enforce best practices and standards with starter documentation, test suites, and benchmark suites that are designed to help you get up and running quickly.

    Changelog πŸ“š

    • feat(libmake): initial commit v0.1.2 by @sebastienrousseau in https://github.com/sebastienrousseau/libmake/pull/2

    Full Changelog: https://github.com/sebastienrousseau/libmake/compare/v0.1.1...v0.1.2

    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Mar 8, 2023)

    Release v0.1.1 - 2023-03-08

    A code generator to reduce repetitive tasks and build high-quality Rust libraries

    [Made With Rust]5 [Crates.io]7 [Lib.rs]9 [Docs.rs]8 [License]2 [Codecov]14

    Welcome to libmake πŸ‘‹

    libmake Banner

    Website β€’ Documentation β€’ Report Bug β€’ Request Feature β€’ Contributing Guidelines

    Overview πŸ“–

    LibMake is a tool designed to quickly help creating high-quality Rust libraries by generating a set of pre-filled and pre-defined templated files. This opinionated boilerplate scaffolding tool aims to greatly reduces development time and minimizes repetitive tasks, allowing you to focus on your business logic while enforcing standards, best practices, consistency, and providing style guides for your library.

    With LibMake, you can easily generate a new Rust library code base structure with all the necessary files, layouts, build configurations, code, tests, benchmarks, documentation, and much more in a matter of seconds.

    The library is designed to be used as a command-line tool. It is available on Crates.io and Lib.rs.

    Features ✨

    LibMake offers the following features and benefits:

    • Create your Rust library with ease using the command line interface or by providing a configuration file in CSV, JSON, TOML, or YAML format.
    • Rapidly generate new library projects with a pre-defined structure and boilerplate code that you can customize with your own template.
    • Automatically generate basic functions, methods, and macros to get you started with your Rust library.
    • Enforce best practices and standards with starter documentation, test suites, and benchmark suites that are designed to help you get up and running quickly.

    Changelog πŸ“š

    What's Changed

    • Feat/libmake by @sebastienrousseau in https://github.com/sebastienrousseau/libmake/pull/1

    New Contributors

    • @sebastienrousseau made their first contribution in https://github.com/sebastienrousseau/libmake/pull/1

    Full Changelog: https://github.com/sebastienrousseau/libmake/commits/v0.1.1

    Artifacts 🎁

    Source code(tar.gz)
    Source code(zip)
Owner
Sebastien Rousseau
Sebastien Rousseau is a Blockchain, Banking & Financial Services development consultant based in London, UK.
Sebastien Rousseau
Simplified glue code generation for Deno FFI libraries written in Rust.

deno_bindgen This tool aims to simplify glue code generation for Deno FFI libraries written in Rust. Quickstart # install CLI deno install -Afq -n den

Divy Srivastava 173 Dec 17, 2022
A simple code boilerplate generator written in Rust.

?? Cgen What is Cgen? A modern, cross-platform, multi-language boilerplate generator aimed to make your code generation less hectic! If you wish to su

Rithul Kamesh 1 Dec 25, 2021
A simple quote-based code generator for Rust

flexgen A flexible, yet simple quote-based code generator for creating beautiful Rust code Why? Rust has two types of macros, and they are both very p

Scott Meeuwsen 11 Oct 13, 2022
PartiQL libraries and tools in Rust.

This is a collection of crates to provide Rust support for the PartiQL query language.

null 54 Dec 26, 2022
mollusc is a collection of pure-Rust libraries for parsing, interpreting, and analyzing LLVM.

mollusc is a collection of pure-Rust libraries for parsing, interpreting, and analyzing LLVM.

William Woodruff 50 Dec 2, 2022
Mobile safari / webview remote debugging and e2e testing libraries

Canter (WIP) (WIP) Mobile safari / webview remote debugging and e2e testing libraries. Developed for safari/webview e2e testing on iPhone. Works only

Han Lee 9 Aug 16, 2022
Rust libraries for working with GPT (GUID Partition Table) disk data

gpt-disk-rs no_std libraries related to GPT (GUID Partition Table) disk data. There are three Rust packages in this repository: uguid The uguid packag

Google 25 Dec 24, 2022
A swc plugin that automatically converts React component libraries into "React Client Component"

A swc plugin that automatically converts React component libraries into "React Client Component". For example, you can automatically convert components from @mui into "React Client Component" without having to wrap a component that uses "use client".

xiaotian 3 Jul 12, 2023
Flexible snowflake generator, reference snoyflake and leaf.

Flexible snowflake generator, reference snoyflake and leaf.

Egccri 2 May 6, 2022
Fusion is a cross-platform App Dev ToolKit build on Rust . Fusion lets you create Beautiful and Fast apps for mobile and desktop platform.

Fusion is a cross-platform App Dev ToolKit build on Rust . Fusion lets you create Beautiful and Fast apps for mobile and desktop platform.

Fusion 1 Oct 19, 2021