All Projects → arthurkiller → Rollingwriter

arthurkiller / Rollingwriter

Licence: mit
Rolling writer is an IO util for auto rolling write in go.

Programming Languages

go
31211 projects - #10 most used programming language

Labels

Projects that are alternatives of or similar to Rollingwriter

Rotatable
Helper class to make any view rotatable
Stars: ✭ 295 (+74.56%)
Mutual labels:  rotate
Rverify.js
✅❎ A lightweight image rotation verification plugin.
Stars: ✭ 33 (-80.47%)
Mutual labels:  rotate
Pierotateview
android自定义View,带旋转动画的饼状图,区块点击事件,滑动到某一区块事件,可惯性旋转
Stars: ✭ 113 (-33.14%)
Mutual labels:  rotate
Rotate Layout
Android layout that can rotate any view.
Stars: ✭ 305 (+80.47%)
Mutual labels:  rotate
Wavideobox
秒级! 三行代码实现iOS视频压缩、变速、混音、合并、GIF水印、旋转、换音、裁剪 ! 支持不同分辩率,支持你能想到的各种混合操作! 扩展性强...更多功能不断增加中... iOS 8.0 + 有需要的功能或错误欢迎issue,笔者会及时更新
Stars: ✭ 707 (+318.34%)
Mutual labels:  rotate
Mgs Camera
Unity plugin for control camera in scene.
Stars: ✭ 66 (-60.95%)
Mutual labels:  rotate
Ananas
An easy image editor integration for your Android apps.
Stars: ✭ 186 (+10.06%)
Mutual labels:  rotate
Jqueryrotate
jQueryRotate - plugin to rotate images by any angle cross-browse with animation support
Stars: ✭ 157 (-7.1%)
Mutual labels:  rotate
Egjs
Javascript components group that brings easiest and fastest way to build a web application in your way.
Stars: ✭ 871 (+415.38%)
Mutual labels:  rotate
Pdfsam
PDFsam, a desktop application to extract pages, split, merge, mix and rotate PDF files
Stars: ✭ 1,829 (+982.25%)
Mutual labels:  rotate
Imaging
Imaging is a simple image processing package for Go
Stars: ✭ 4,023 (+2280.47%)
Mutual labels:  rotate
T Scroll
A modern reveal-on-scroll library with useful options and animations. (Animate Elements On Reveal)
Stars: ✭ 642 (+279.88%)
Mutual labels:  rotate
Photo view
📸 Easy to use yet very customizable zoomable image widget for Flutter, Photo View provides a gesture sensitive zoomable widget. Photo View is largely used to show interacive images and other stuff such as SVG.
Stars: ✭ 1,280 (+657.4%)
Mutual labels:  rotate
Knphotobrowser
📷 图片 || 视频 浏览器(本地和网络) , UIViewController + CollectionView , 完美适配 iPhone 以及 iPad ,屏幕旋转功能 , 适配SDWebImage 5.0
Stars: ✭ 296 (+75.15%)
Mutual labels:  rotate
Pleaserotate.js
🔄 Politely ask your users to view your mobile website in portrait or landscape mode
Stars: ✭ 121 (-28.4%)
Mutual labels:  rotate
Flutter advanced networkimage
flutter advanced network image provider
Stars: ✭ 282 (+66.86%)
Mutual labels:  rotate
Extended image
A powerful official extension library of image, which support placeholder(loading)/ failed state, cache network, zoom pan image, photo view, slide out page, editor(crop,rotate,flip), paint custom etc.
Stars: ✭ 1,021 (+504.14%)
Mutual labels:  rotate
Gol
gol is a high performance async log kit for golang
Stars: ✭ 166 (-1.78%)
Mutual labels:  rotate
Zoom
Javascript library to do pinch zoom that preserves scale and rotation correctly.
Stars: ✭ 130 (-23.08%)
Mutual labels:  rotate
Parrot
A package to rotate text and party with parrots at the same time
Stars: ✭ 99 (-41.42%)
Mutual labels:  rotate

RollingWriter Build Status Go Report Card GoDoc codecov Awesome

RollingWriter is an auto rotate io.Writer implementation. It can works well with logger.

Awesome Go popular log helper

New Version v2.0 is comming out! Much more Powerfull and Efficient. Try it by follow the demo

RollingWriter contains 2 separate patrs:

  • Manager: decide when to rotate the file with policy. RlingPolicy give out the rolling policy

    • WithoutRolling: no rolling will happen
    • TimeRolling: rolling by time
    • VolumeRolling: rolling by file size
  • IOWriter: impement the io.Writer and do the io write

    • Writer: not parallel safe writer
    • LockedWriter: parallel safe garented by lock
    • AsyncWtiter: parallel safe async writer
    • BufferWriter: merge serval write into one file.Write()

Features

  • Auto rotate with multi rotate policies
  • Implement go io.Writer, provide parallel safe writer
  • Max remain rolling files with auto cleanup
  • Easy for user to implement your manager

Benchmark

goos: darwin
goarch: amd64
pkg: github.com/arthurkiller/rollingWriter
BenchmarkWrite-4                          300000              5952 ns/op               0 B/op          0 allocs/op
BenchmarkParallelWrite-4                  200000              7846 ns/op               0 B/op          0 allocs/op
BenchmarkAsynWrite-4                      200000              7917 ns/op           16324 B/op          1 allocs/op
BenchmarkParallelAsynWrite-4              200000              8632 ns/op           12513 B/op          1 allocs/op
BenchmarkLockedWrite-4                    200000              5829 ns/op               0 B/op          0 allocs/op
BenchmarkParallelLockedWrite-4            200000              7796 ns/op               0 B/op          0 allocs/op
BenchmarkBufferWrite-4                    200000              6943 ns/op            1984 B/op          4 allocs/op
BenchmarkParallelBufferWrite-4           1000000              1026 ns/op            7129 B/op          1 allocs/op
PASS
ok      github.com/arthurkiller/rollingWriter   14.867s

Quick Start

	writer, err := rollingwriter.NewWriterFromConfig(&config)
	if err != nil {
		panic(err)
	}

	writer.Write([]byte("hello, world"))

Want more? View demo for more details.

Any suggestion or new feature inneed, please put up an issue

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].