semantic-rs alternatives and similar packages
Based on the "Development tools" category.
Alternatively, view semantic-rs alternatives based on common mentions on social networks and blogs.
YouCompleteMe9.9 4.1 L5 semantic-rs VS YouCompleteMeA code-completion engine for Vim
just9.7 7.0 semantic-rs VS just🤖 Just a command runner
rust-analyzer9.7 10.0 semantic-rs VS rust-analyzerA Rust compiler front-end for IDEs [Moved to: https://github.com/rust-lang/rust-analyzer]
Clippy9.6 9.9 semantic-rs VS ClippyA bunch of lints to catch common mistakes and improve your Rust code. Book: https://doc.rust-lang.org/clippy/
PyO39.5 9.0 semantic-rs VS PyO3Rust bindings for the Python interpreter
gdbgui9.5 2.2 semantic-rs VS gdbguiBrowser-based frontend to gdb (gnu debugger). Add breakpoints, view the stack, visualize data structures, and more in C, C++, Go, Rust, and Fortran. Run gdbgui from the terminal and a new tab will open in your browser.
rr9.4 8.9 L1 semantic-rs VS rrRecord and Replay Framework
Rustup9.3 7.6 semantic-rs VS RustupThe Rust toolchain installer
neon9.3 8.5 semantic-rs VS neonRust bindings for writing safe and fast native Node.js modules.
rustfmt9.2 7.6 semantic-rs VS rustfmtFormat Rust code
intellij-rust9.1 9.8 semantic-rs VS intellij-rustRust plugin for the IntelliJ Platform
Rustler8.9 9.0 semantic-rs VS RustlerSafe Rust bridge for creating Erlang NIF functions
Rust Language ServerRepository for the Rust Language Server (aka RLS)
rust.vim8.8 0.0 semantic-rs VS rust.vimVim configuration for Rust.
Racer8.8 0.0 semantic-rs VS RacerRust Code Completion utility
rust-cross8.3 0.0 semantic-rs VS rust-crossEverything you need to know about cross compiling Rust programs!
quickcheck8.1 0.0 semantic-rs VS quickcheckAutomated property based testing for Rust (with shrinking).
cbindgen8.0 0.0 semantic-rs VS cbindgenA project for generating C bindings from Rust code
helix8.0 0.0 semantic-rs VS helixNative Ruby extensions without fear
CodeLLDB8.0 7.0 L4 semantic-rs VS CodeLLDBA native debugger extension for VSCode based on LLDB
tarpaulin8.0 0.0 semantic-rs VS tarpaulinA code coverage tool for Rust projects
cargo-make7.9 8.3 semantic-rs VS cargo-makeRust task runner and build tool.
rust-cpython7.8 0.0 semantic-rs VS rust-cpythonRust <-> Python bindings
SolidOak7.6 0.0 semantic-rs VS SolidOaka simple IDE for Rust, based on GTK+ and Neovim
afl.rs7.4 5.9 L4 semantic-rs VS afl.rs🐇 Fuzzing Rust code with American Fuzzy Lop
proptest7.3 0.0 semantic-rs VS proptestHypothesis-like property testing for Rust
rust-mode7.1 8.3 semantic-rs VS rust-modeEmacs configuration for Rust
trust7.0 0.0 semantic-rs VS trustTravis CI and AppVeyor template to test your Rust crate on 5 architectures and publish binary releases of it for Linux, macOS and Windows
xargo6.9 1.3 semantic-rs VS xargoThe sysroot manager that lets you build and customize `std`
cargo-release6.9 6.3 semantic-rs VS cargo-releaseCargo subcommand `release`: everything about releasing a rust crate.
jni-rs6.9 1.3 semantic-rs VS jni-rsRust bindings to the Java Native Interface — JNI
VisualRust6.7 0.0 L3 semantic-rs VS VisualRustVisual Studio extension for Rust
MIRAI6.6 7.0 semantic-rs VS MIRAIRust mid-level IR Abstract Interpreter
Rust for Visual Studio CodeRust for Visual Studio Code
sublime-rust6.5 2.8 semantic-rs VS sublime-rustThe official Sublime Text 3 package for the Rust Programming Language
cargo-update6.5 0.0 semantic-rs VS cargo-updateA cargo subcommand for checking and applying updates to installed executables
ruru6.5 0.0 semantic-rs VS ruruNative Ruby extensions written in Rust
vscode-rust6.5 0.0 semantic-rs VS vscode-rusta fork of RustyCode
rustfix6.4 0.0 semantic-rs VS rustfixAutomatically apply the suggestions made by rustc
clog-cli6.3 0.0 semantic-rs VS clog-cliGenerate beautiful changelogs from your Git commit history
milksnake6.3 0.0 semantic-rs VS milksnakeA setuptools/wheel/cffi extension to embed a binary data in wheels
cargo-deb6.2 1.1 semantic-rs VS cargo-debA cargo subcommand that generates Debian packages from information in Cargo.toml
artifact6.1 0.0 semantic-rs VS artifactThe open source design documentation tool for everybody
vim-racer6.0 1.1 semantic-rs VS vim-racerRacer support for Vim
rst6.0 0.0 semantic-rs VS rstThe open source design documentation tool for everybody [Moved to: https://github.com/vitiral/artifact]
RustDT5.9 0.0 L4 semantic-rs VS RustDTan Eclipse-based IDE for Rust
cargo-modules5.7 6.7 semantic-rs VS cargo-modulesRender your crate's module/item structure as a tree or graph
Mockito5.6 0.0 semantic-rs VS MockitoHTTP mocking for Rust!
hlua5.6 0.0 L3 semantic-rs VS hluaRust library to interface with Lua
rust-musl-cross5.4 2.2 semantic-rs VS rust-musl-crossDocker images for compiling static Rust binaries using musl-cross
Static code analysis for 29 languages.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of semantic-rs or a related project?
The purpose of this tool is to help people to publish crates following the semver specification.
Right now if you're building a new crate publishing new versions includes a high amount of work. You need to decide if the new version will be either a new Major, Minor or Patch version. If that decision is made, the next step is to write a changelog with all the things changed. Then increase the version in
Cargo.toml. Make a commit and a new tag for the new version and lastly publish it to crates.io.
If you need to repeat these steps every time, chances are high you make mistakes.
semantic-rs automates all these steps for you so you can focus more on developing new features instead.
- Install semantic-rs on your machine.
- Follow the Angular.js commit message conventions when you commit changes to your repository
- When you're done with development, run semantic-rs
- Based on your changes it determines the next version number, generates a changelog, commits it and creates a new tag
- It also increases the version number in
cargo packagefor you
- Creates a release on GitHub
- Publishes the new version to crates.io
- Done 🚀
Installation via crates.io
$ sudo apt-get install -y cmake libssl-dev pkg-config zlib1g-dev $ cargo install semantic-rs
You need the following data beforehand:
- A GitHub application token Get it here
- Your crates.io API key Get it here
semantic-rs depends on some data being passed in via environment variables. In our examples we specify those variables explicitly but if you run semantic-rs frequently you may want to configure those in your shell's configuration file.
GIT_COMMITTER_EMAIL is optional. If you omit those, we default to the settings from your (global) git configuration.
If you run semantic-rs without any arguments, it operates on your current working directory:
$ export GH_TOKEN=<GHTOKEN> $ export CARGO_TOKEN=<CARGOTOKEN> $ export GIT_COMMITTER_NAME=<Your name> $ export GIT_COMMITTER_EMAIL=<Your email> $ semantic-rs #...
By default it runs in dry-run mode. This means it doesn't perform changes automatically. You see which steps would be performed and also the resulting changelog.
To perform the changes, pass
-w as an argument:
$ semantic-rs -w=yes
This performs the following operations:
- Create or update
Changelog.mdcontaining everything that changed
- Create a new commit containing the following changes:
- An updated
Cargo.tomlwith the new version number
- Create a new annotated git tag pointing to the last commit created recently and including the Changelog for the new version
- A new version published to [crates.io](crates.io)
- A new release on GitHub
- Push the new commit and tag to GitHub
- OpenSSL development package
- Mac Homebrew:
- Rust 1.15 or later
For OS X > 10.10
Note that since OS X 10.11 Apple doesn't ship development headers for OpenSSL anymore. In order to get it working, you need to run cargo with these variables configured:
OPENSSL_INCLUDE_DIR=`brew --prefix openssl`/include \ OPENSSL_LIB_DIR=`brew --prefix openssl`/lib \ cargo build
Clone this project:
$ git clone [email protected]:semantic-rs/semantic-rs.git
As a test project you can use this one: https://github.com/badboy/test-project.
Clone it as well:
$ git clone https://github.com/badboy/test-project.git
In your top level directory there should be now the following two folders:
$ ls -l semantic-rs test-project
Change into the semantic-rs folder and run
Then you can run semantic-rs against the test project:
$ cargo run -- -p ../test-project Compiling semantic-rs v0.1.0 (file:///Users/janschulte/projects/semantic-rs/semantic-rs) Running `target/debug/semantic-rs -p ../test-project` semantic.rs 🚀 Analyzing your repository Current version: 2.0.3 Analyzing commits Commits analyzed. Bump would be Minor New version would be: 2.1.0 Would write the following Changelog: ==================================== ## v2.1.0 (2016-07-03) #### Features * Math mode ([24afa46f](24afa46f)) #### Bug Fixes * Into the void ([9e54f4bf](9e54f4bf)) ==================================== Would create annotated git tag
-w yes was not passed, it only prints out what it would do. Note that if you run it on your local machine the output may differ.
Running the tests
To run semantic-rs's tests:
- unit tests:
- integration tests:
Run semantic-rs in CI environment
Make sure to set the
CI=true environment variable to disable dry-run mode.
Bug reports and pull requests are welcome on GitHub. You can find more information about contributing in the CONTRIBUTING.md. This project is intended to be a safe, welcoming space for collaboration and discussion, and contributors are expected to adhere to the Contributor Covenant code of conduct.
This project is licensed under the MIT license.
*Note that all licence references and agreements mentioned in the semantic-rs README section above are relevant to that project's source code only.