Polyglot for Maven
rust_cmd_lib
Polyglot for Maven | rust_cmd_lib | |
---|---|---|
12 | 11 | |
865 | 988 | |
0.1% | - | |
6.7 | 8.0 | |
about 2 months ago | 5 months ago | |
Java | Rust | |
Eclipse Public License 1.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Polyglot for Maven
-
Was Rust Worth It?
And you don't even need to use XML with Polyglot Maven
https://github.com/takari/polyglot-maven
-
Why did Spring Initializr Change the Default to Gradle?
If you prefer the shorter alternative, you might want to use the Polyglot XML extension https://github.com/takari/polyglot-maven/tree/master/polyglot-xml
-
Gradle 8.0
Here you go: https://github.com/takari/polyglot-maven
- Does something like Javas Jhipster exist for Python?
- Maven Polyglot
-
Maven is turning 20 today 🥳 To many more years of stable Java builds 🍻
Fun fact, POM files can be in formats other than XML (although I have no idea if IJ would tolerate such shenanigans): https://github.com/takari/polyglot-maven/blob/polyglot-0.4.8/polyglot-yaml/src/test/resources/snakeyaml/pom.yaml
-
From Maven 3 to Maven 5
There is a certain argument to be made for user ergonomy. Many developers are drawn to Gradle and friends, or to work with polyglot Maven, because they support a more concise syntax. This is not necessarily a contradiction with Maven's Goals!
- Why doesn't everyone use gradle?
-
The Maven Wrapper has now been officially released from the Apache Maven Project
I wished they‘d finally embrace polyglot maven https://github.com/takari/polyglot-maven. pom.yaml rule the world.
-
Gradle 7.0 Released
It seems merely adding a file to the .mvn directory will do as you wish: https://github.com/takari/polyglot-maven#usage
I have avoided that road because it's one more thing that is a snowflake in the very area where I don't want to blazing trails. But I have personally tried their approach before and can confirm it does work as advertised. I can't recall if IJ lost its mind over pulling a stunt like that, but arguably if it did, then filing a YouTrack is an appropriate next step
rust_cmd_lib
- Was Rust Worth It?
-
Execute $(command) in std::process::Command?
With rust_cmd_lib, you can write below code without launching shell:
-
How to do things safely in Bash
zsh is also doing the variable substitution better than bash. FYI, I just released rust_cmd_lib 1.0 recently, which can do variable substitution without any quotes: https://github.com/rust-shell-script/rust_cmd_lib
- cmd_lib: v1.0 released!
-
Process file in parallel
With cmd_lib and rayon, it could be done in below one line code:
-
Using rust cmd_lib to replace your bash scripts!
#!/usr/bin/env ngs # In response to https://github.com/rust-shell-script/rust_cmd_lib/blob/1f2fc2303db3f467c42589bd944b31834c8a0bca/examples/dd_test.rs # $ ./dd_test.ngs --file /dev/nvme0n1 --block_size 4096 --threads_count 4 # [LOG 2021-03-20 10:57:14 IST] Dropping caches at first # [LOG 2021-03-20 10:57:14 IST] Running command: sudo bash -c echo\ 3\ \>\ /proc/sys/vm/drop_caches # [LOG 2021-03-20 10:57:15 IST] Running with threads: 4, block size: 4096 # [LOG 2021-03-20 10:57:15 IST] Running command: sudo bash -c dd\ if=/dev/nvme0n1\ of=/dev/null\ bs=4096\ skip=1310720\ count=655360\ 2\>\&1 # [LOG 2021-03-20 10:57:15 IST] Running command: sudo bash -c dd\ if=/dev/nvme0n1\ of=/dev/null\ bs=4096\ skip=655360\ count=655360\ 2\>\&1 # [LOG 2021-03-20 10:57:15 IST] Running command: sudo bash -c dd\ if=/dev/nvme0n1\ of=/dev/null\ bs=4096\ skip=1966080\ count=655360\ 2\>\&1 # [LOG 2021-03-20 10:57:15 IST] Running command: sudo bash -c dd\ if=/dev/nvme0n1\ of=/dev/null\ bs=4096\ skip=0\ count=655360\ 2\>\&1 # [LOG 2021-03-20 10:57:22 IST] thread 0 bandwidth: 450 MB/s # [LOG 2021-03-20 10:57:22 IST] thread 1 bandwidth: 451 MB/s # [LOG 2021-03-20 10:57:22 IST] thread 2 bandwidth: 453 MB/s # [LOG 2021-03-20 10:57:22 IST] thread 3 bandwidth: 451 MB/s # [LOG 2021-03-20 10:57:22 IST] Total bandwidth: 1805 MB/s # Command line arguments automatically fed into main() # Default data size - 10G F main(file:Str, block_size:Int=4096, threads_count:Int=1, data_size:Int=10 * 1024 * 1024 * 1024) { log("Dropping caches at first") $(log: sudo bash -c "echo 3 > /proc/sys/vm/drop_caches") log("Running with threads: ${threads_count}, block size: ${block_size}") # Parallel map: each callback runs in it's own thread cnt = data_size / threads_count / block_size results = threads_count.pmap(F(i) { off = cnt * i `log: sudo bash -c "dd if=$file of=/dev/null bs=$block_size skip=$off count=$cnt 2>&1"` }) total_bandwidth = 0 results.each_idx_val(F(i, output) { # "line:" makes the first line of output as the result of `...` bandwidth = `echo $output | line: awk '/MB/ {print $10}'`.Int() log("thread ${i} bandwidth: ${bandwidth} MB/s") total_bandwidth += bandwidth }) log("Total bandwidth: $total_bandwidth MB/s") } # When running without arguments F main() { # exit() - exit code is 1 unless otherwise specified exit("Usage: ${ARGV0} --file FILE [--block_size BLOCK_SIZE] [--threads_count THREADS_COUNT] [--data_size DATA_SIZE]") }
- Release v0.12.0 · rust-shell-script/rust_cmd_lib
-
Convert tetris.sh and pipes.sh line-by-line to rust code
Thanks for the inspiration from previous posts, and I tried to convert pipes.sh to rust code today. It turned out to be very straightforward with the help of rust_cmd_lib, and your can check both language versions in the project examples directory.
-
rust_cmd_lib v0.10: to write shell-script like tasks in a clean, natural and rusty way
Yes, your concern is correct and that's why I encourage people to use macros by default: https://github.com/rust-shell-script/rust_cmd_lib#security-notes
What are some alternatives?
Joda-Money - Java library to represent monetary amounts.
PowerShell - PowerShell for every system!
Maven Wrapper - The easiest way to integrate Maven into your project!
shellharden - The corrective bash syntax highlighter
Membrane Service Proxy - API gateway for REST, OpenAPI, GraphQL and SOAP written in Java.
makesure - Simple task/command runner with declarative goals and dependencies
J2ObjC - A Java to iOS Objective-C translation tool and runtime.
scripts - Useful scripts that I find handy to work with
Codename One - Cross-platform framework for building truly native mobile apps with Java or Kotlin. Write Once Run Anywhere support for iOS, Android, Desktop & Web.
pipe-trait - Make it possible to chain regular functions
sitemapgen4j - SitemapGen4j is a library to generate XML sitemaps in Java.
shellclear - Secure shell history commands by finding sensitive data