Coder Social home page Coder Social logo

essentials's Introduction

Essential libraries for Go

Objectives

Goals

  • All native Go library.
  • Minimize use of external libraries (allowed packages: golang.org/x, github.com/golang).
  • Separate interface from implementation.
  • Safer code.
  • Ease of development.

Core usecase

This library is intended to use a desktop or command-line applications, not on a server or IoT/mobile. The library may be optimized for that. For example, a target memory footprint may not exceed 1-2 GiB for a single instance.

Non-goals

  • Performance (this is often trade-off to ease-of-development)
  • Minimal footprints
  • Compatibility (because this project is experimental)

Target platform

  • Windows 10 or above (x64)
  • Darwin (macOS) (x64, arm64)
  • Linux (x64)

Structure

Naming

  • All submodules should start with the prefix e. For example, if a sub-module is for logging, the name should be elog.

essentials's People

Contributors

watermint avatar

Watchers

 avatar  avatar  avatar

essentials's Issues

File system interface and implementation

  • os.FS is not enough to cover all file system including virtual file system or cloud file system.
  • Go-lang's file handling or IO usually need to handle OS specific stuff even for fundamental operation such as file move (need to consider drive diff on Windows)

Obvious error handling framework

Context:

  • Golang's error handling sometimes cause readability issue.
  • There is usually no clear guidance about a cause, such as an error for a file operation. That need to verify an error in various ways. e.g. compare with constant Err* value, use IsXxx func to ensure error, and so on.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.