Skip to content

Commit 5c02005

Browse files
chshershvrom911
authored andcommitted
[#162] Write more beginner-friendly README (#168)
* [#162] Write more beginner-friendly README
1 parent d173b5f commit 5c02005

File tree

1 file changed

+28
-6
lines changed

1 file changed

+28
-6
lines changed

README.md

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,47 @@
11
# co-log
22

3-
[![MPL-2.0 license](https://img.shields.io/badge/license-MPL--2.0-blue.svg)](https://github.com/kowainik/co-log/blob/master/LICENSE)
43
[![Build status](https://img.shields.io/travis/kowainik/co-log.svg?logo=travis)](https://travis-ci.org/kowainik/co-log)
54
[![Windows build](https://ci.appveyor.com/api/projects/status/github/kowainik/co-log?branch=master&svg=true)](https://ci.appveyor.com/project/kowainik/co-log)
5+
[![MPL-2.0 license](https://img.shields.io/badge/license-MPL--2.0-blue.svg)](https://github.com/kowainik/co-log/blob/master/LICENSE)
66

77
| | | | |
88
| :------------ | :--------------------------------- | :---------------------------------------- | :---------------------------------------------------- |
99
| `co-log-core` | [![Hackage][hk-img-core]][hk-core] | [![Stackage LTS][lts-img-core]][lts-core] | [![Stackage Nightly][nightly-img-core]][nightly-core] |
1010
| `co-log` | [![Hackage][hk-img]][hk] | [![Stackage LTS][lts-img]][lts] | [![Stackage Nightly][nightly-img]][nightly] |
1111
| `co-log-polysemy` | [![Hackage][hk-img-ps]][hk-ps] | [![Stackage LTS][lts-img-ps]][lts-ps] | [![Stackage Nightly][nightly-img-ps]][nightly-ps] |
1212

13-
`co-log` is a composable and configurable logging framework. The idea of the approach is
14-
described in the following blog post:
13+
`co-log` is a composable and configurable logging framework. It
14+
combines all the benefits of Haskell idioms to provide a reasonable
15+
and convenient interface. Though it uses some advanced concepts in its
16+
core, we are striving to provide beginner-friendly API. The library
17+
also contains complete documentation with a lot of beginner-friendly
18+
examples, explanations and tutorials to guide users. The combination
19+
of pragmatic approach to logging and fundamental Haskell abstractions
20+
allows us to create highly composable and configurable logging
21+
framework.
22+
23+
If you're interested in how different Haskel typeclasses are used to
24+
implement core functions of `co-log`, you can read the following blog
25+
post which goes in detail about internal implementation specifics:
1526

1627
* [co-log: Composable Contravariant Combinatorial Comonadic Configurable Convenient Logging](https://kowainik.github.io/posts/2018-09-25-co-log)
1728

18-
The repository contains the following packages:
29+
`co-log` is also modular on the level of packages. We care a lot about a
30+
low dependency footprint so you can build your logging only on top of
31+
the minimal required interface for your use-case. This repository contains
32+
the following packages:
1933

2034
* [`co-log-core`](co-log-core): lightweight package with basic data types and
21-
general idea.
35+
general idea which depends only on `base`.
2236
* [`co-log`](co-log): taggless final implementation of logging library based on
2337
`co-log-core`.
2438
* [`co-log-polysemy`](co-log-polysemy): implementation of logging library based
2539
on `co-log-core` and the [`polysemy`](http://hackage.haskell.org/package/polysemy) extensible effects library.
2640
* [`co-log-benchmark`](co-log-benchmark): Benchmarks of the `co-log` library.
2741

28-
See the following tutorial series about the library:
42+
To provide more user-friendly introduction to the library, we've
43+
created the tutorial series which introduces the main concepts behind `co-log`
44+
smoothly:
2945

3046
* [Intro: Using `LogAction`](https://github.com/kowainik/co-log/blob/master/co-log/tutorials/1-intro/Intro.md)
3147
* [Using custom monad that stores `LogAction` inside its environment](https://github.com/kowainik/co-log/blob/master/co-log/tutorials/2-custom/Custom.md)
@@ -44,6 +60,12 @@ doesn't contain `Message` then this benchmark simply dumps string `"message"`
4460
to output, otherwise it works with `Message` data type from the `co-log`
4561
library.
4662

63+
To run benchmarks, use the following command:
64+
65+
```
66+
cabal v2-run co-log-bench
67+
```
68+
4769
| Benchmarks | Time for 10K messages |
4870
| :------------------------------------------------------ | :-------------------- |
4971
| `Prelude.putStrLn` | ` 5.117ms` |

0 commit comments

Comments
 (0)