ciabatta/readme.md

66 lines
2.1 KiB
Markdown
Raw Normal View History

2022-06-20 03:51:19 +00:00
2023-06-24 15:50:53 +00:00
# Ciabatta
2022-06-26 04:39:15 +00:00
2023-06-24 15:52:53 +00:00
![Build Status](https://github.com/github/docs/actions/workflows/main.yml/badge.svg?event=push)
2022-08-06 11:53:50 +00:00
Ciabatta - An implementation of cross-platform C standard library with the
following goals:
- Providing C standard library that fully implements all C features. Some
standard libraries lack many features of C11 and C23, like threads.h or
aligned_alloc in case of msvcrt.
- Making standard library that is easy to port to other platforms, for example
an embedded platform or a custom operating system.
- Allowing applications to debug and step into standard library functions
- Reasonably fast CRT compared to MSVCRT and glibc.
- Extend the possibilities of C standard library with commonly used
functionality: implementing POSIX standard (including directories and
sockets), capability for unicode processing.
Ciabatta is not binary-compatible with other CRT libraries. That means that any
libraries that your project uses have to also be compiled with Ciabatta,
otherwise you might run into issues.
Please note that as of today ciabatta is still during development and does not
implement many of the features that need to be implemented. Using it at current
time is discouraged.
2023-06-24 15:50:53 +00:00
## Support
2022-08-06 11:53:50 +00:00
2023-06-24 15:50:53 +00:00
Operating System:
- Windows
2022-08-06 11:53:50 +00:00
- Linux (planned)
2022-06-20 03:51:19 +00:00
2022-08-06 11:53:50 +00:00
Processor Architecture:
- x86-64
2023-06-24 15:50:53 +00:00
This library is supposed to be extensible to other platforms, meaning that
you can write an OS layer for another OS and use the rest of the CRT
functionality.
## Building & Usage
2022-08-06 11:53:50 +00:00
2023-06-24 15:50:53 +00:00
Building ciabatta with MSVC is not supported. The only compiler that the
library have been compiled and tested with is clang.
2022-08-06 11:53:50 +00:00
Note that the library can only be used with clang
2023-06-24 15:50:53 +00:00
2023-06-18 10:41:55 +00:00
1. Run ./build.cmd to compile ciabatta
2023-06-24 15:50:53 +00:00
- (Optionally) Run `./test crt` to make sure there are no errors
2022-08-06 11:53:50 +00:00
2. Grab the following files into your project's directory:
2023-06-24 15:50:53 +00:00
- The `./include` folder
- The `./ciabatta.lib` archive file
- The `./utf8.obj` object file
2022-08-06 11:53:50 +00:00
3. Add the following flags to your compilation command:
2023-06-24 15:50:53 +00:00
`-I ./include utf8.obj -nostdlib -mfma`
2022-08-06 11:53:50 +00:00
4. Don't forget to link to the following libraries:
2023-06-24 15:50:53 +00:00
`-lciabatta.lib`
2022-06-20 03:51:19 +00:00
2023-06-24 15:50:53 +00:00
## Contributing
2022-06-20 03:51:19 +00:00
2022-08-06 11:53:50 +00:00
Pull requests welcome and accepted in any form.
2022-06-20 03:51:19 +00:00
2023-06-24 15:50:53 +00:00
## License
2022-06-20 03:51:19 +00:00
2023-06-24 15:50:53 +00:00
TBD