jamesmunns · GitHub

@killercup

@killercup

jamesmunns

[#19]: https://github.com/killercup/quicli/issues/19

That sounded pretty awesome and made me really proud:
Did me library

But, before blindly agreeing to this,
I needed to take a step back
and evaluate what I want quicli to be.
I just wanted a small framework-like thing
that made writing CLI apps less of a pain.
But how exactly do I want to to this?
Thanks to Garretts' questions and comments

In its implementation,
you get what I'd call
"a small framework around you main function":
In its implementation,
you get what I'd call
"a small framework around you main function":
quicly's `main!` macro set up some basic things,
Sadly, for newcomers/forgetful people/drunk programmers/etc.
they are also _wonderfully complex._

So, instead of offering the user "everything,"
So, instead of offering the user "everything,"
I want to introduce some abstractions that are simple to use,
and have simple but useful examples.
Not not get stuck,
Since then, I've written two more guides,
and for both I added features to the framework,
exposed new functionality,
and thought more about how I want quicly-based code to feel.
and for both I added features to the framework,
exposed new functionality,
and thought more about how I want quicly-based code to feel.
(More on the aspect of hosting and testing these docs in a future post!)
It gives you a way of quickly writing CLI programs in Rust.
(Hence the name.)
In this post,
I want to present the ideas and underlaying philosophies of this project.

@killercup

killercup

In its implementation,
you get what I'd call
"a small framework around you main function":
quicly's `main!` macro set up some basic things,
(as well as my ergonomic requirements).

What I want you to end up with is code that is
concise,
Sadly, for newcomers/forgetful people/drunk programmers/etc.
they are also _wonderfully complex._

So, instead of offering the user "everything,"
Since then, I've written two more guides,
and for both I added features to the framework,
exposed new functionality,
and thought more about how I want quicly-based code to feel.
and for both I added features to the framework,
exposed new functionality,
and thought more about how I want quicly-based code to feel.
(More on the aspect of hosting and testing these docs in a future post!)

mgattozzi


I've been writing CLI tools in Rust for a while now.
It really surprised me how this language
that works really well for system programming
["5 Tips for Writing Small CLI Tools in Rust"][cli-tips]
at the end of August 2017
that you may have read,
where I describes some of my take-aways from that
that you may have read,
where I describes some of my take-aways from that
in the form of short tips.
I've got some great feedback to that post,
I didn't have the time or concentration
to sit down and really do this.
And here's the good news:
For some reason[^9e-talk],

[cli-tips]: {% post_url 2017-08-31-rust-cli-tips %}

[^9e-talk]: Okay, I admit, I promised to give a talk about Rust, and I wanted to present some nice, clean example code. (Of course, in the end I didn't show quicli in the talk.)
So, instead of offering the user "everything,"
I want to introduce some abstractions that are simple to use,
and have simple but useful examples.
Not to get stuck,
Indeed, instead of adding any feature flags to this crate
(that enable additional components to be loaded/exposed),
I want to have a clear line
where a user is supposed to stop relying on quicli.
(that enable additional components to be loaded/exposed),
I want to have a clear line
where a user is supposed to stop relying on quicli.
I'd rather have an "eject" option
but another important aspect to me is to prove that it is useful
for writing small tools
-- even if you've only just started with Rust.
This is why I initially wrote the Readme file
for writing small tools
-- even if you've only just started with Rust.
This is why I initially wrote the Readme file
in form of a How To:

@killercup

killercup

Sadly, for newcomers/forgetful people/drunk programmers/etc.
they are also _wonderfully complex._

So, instead of offering the user "everything,"
I didn't have the time or concentration
to sit down and really do this.
And here's the good news:
For some reason[^9e-talk],
it is very concise.

Another aspect of conciseness:
Instead of using `.unwrap` to deal with errors,
and good error messages.
Similarly, you get logging for free,
and if you add two more lines,
you also get a `--verbose`/`-v` CLI argument to control the log level
So, instead of offering the user "everything,"
I want to introduce some abstractions that are simple to use,
and have simple but useful examples.
Not to get stuck,

[cli-tips]: {% post_url 2017-08-31-rust-cli-tips %}

[^9e-talk]: Okay, I admit, I promised to give a talk about Rust, and I wanted to present some nice, clean example code. (Of course, in the end I didn't show quicli in the talk.)
but another important aspect to me is to prove that it is useful
for writing small tools
-- even if you've only just started with Rust.
This is why I initially wrote the Readme file
Almost forgot that!

@killercup

@killercup

Read the original on github.com ↗