Gojo: Experiments in porting over Golang stdlib into Mojo
https://github.com/thatstoasty/gojo/tree/main
This library is my attempt at porting over some modules and structs from Golang's stdlib. You can find the list below! Most of these topics were new to me when starting the port, so if you find bugs or opportunities for improvement feel free to drop some comments!
It's been a good learning opportunity for both Go and Mojo.
-
-
-
-
-
-
- Traits:
-
-
-
-
-
-
-
- Basic
-
- External call wrappers for
-
-
-
-
-
This library is my attempt at porting over some modules and structs from Golang's stdlib. You can find the list below! Most of these topics were new to me when starting the port, so if you find bugs or opportunities for improvement feel free to drop some comments!
It's been a good learning opportunity for both Go and Mojo.
Modules
-bufio-
Reader: Buffered io.Reader-
Scanner: Scanner interface to read data via tokens.-
bytes-
Buffer: Buffer backed by UnsafePointer[UInt8].-
Reader: Reader backed by UnsafePointer[UInt8].-
io- Traits:
Reader, Writer, Seeker, Closer, ReadWriter, ReadCloser, WriteCloser, ReadWriteCloser, ReadSeeker, ReadSeekCloser, WriteSeeker, ReadWriteSeeker, ReaderFrom, WriterReadFrom, WriterTo, ReaderWriteTo, ReaderAt, WriterAt, ByteReader, ByteScanner, ByteWriter, StringWriter-
Reader and Writer wrapper functions.-
FileWrapper: FileHandle Wrapper Reader/Writer-
STDOUT/STDERR Writer (leveraging libc).-
strings-
StringBuilder: String builder for fast string concatenation.-
Reader: String reader.-
fmt- Basic
sprintf function.-
syscall- External call wrappers for
libc functions and types.-
net-
Socket: Wraps FileDescriptor and implements network specific functions.-
FileDescriptor: File Descriptor wrapper that implements io.Writer, io.Reader, and io.Closer.-
Dial and Listen interfaces for Socket connections (for TCP only atm).-
Socket struct similar to Python's and a simple FileDescriptor struct.