Le langage de programmation Safe-C a été créé en 2011. Il résulte d'un effort pour moderniser le langage C afin qu'il puisse être utilisé pour écrire des logiciels fiables.
En particulier, les indices de tableau et les pointeurs sont vérifiés afin qu'ils ne puissent pas accéder à la mémoire en dehors des règles du langage.
Le Safe-C est très semblable au C (95% de la syntaxe est identique),
de sorte qu'un programmeur C n'aura aucune difficulté pour passer au Safe-C.
Un compilateur Safe-C pour Windows est disponible
à ce lien.
Safe-C a été utilisé pour développer les logiciels client et serveur du monde virtuel 3D multi-utilisateur https://planet-samuro.com
La librairie standard du Safe-C comprend les composants suivants :
| aes | AES encryption |
| arithm | arithmétique simple (abs, min, max) |
| base64 | encodage en base64 |
| bintree | arbres binaires équilibrés (AVL) |
| calendar | calendrier |
| console | écriture/lecture sur la boite de commande |
| crc | checksums md5, sha2, adler et crc |
| db | database (insert/delete/update/retrieve, transations sur fichiers .db - documentation) |
| des | DES encryption |
| directx | interface pour DirectX 10 & 11 |
| draw | dessiner dans un buffer mémoire (ligne, cercle, texte, image) |
| exception | traitement d'exception |
| files | fichiers texte et binaire, répertoires, disque. |
| ftp | protocole pour transfert de fichiers (ftp) - client et serveur |
| gui | interface utilisateur (fenêtres, listbox, etc ..) avec une fenêtre principale utilisant le composant directx |
| hash | table de hashage, dictionnaire (clé vers valeur) |
| http | client et serveur internet (login, pages html virtuelles, ..) |
| image | compression et décompression (jpg, gif, png, ..), traitement d'image |
| inifile | lecture de fichiers .ini |
| integer | opérations sur grands nombres entiers non-signés |
| linear_algebra | opérations sur vecteurs et matrices |
| math | fonctions mathématiques (sin, cos, ..) |
| odbc | interface odbc 3.0 pour database sql |
| opus | codec audio (voir http://www.opus-codec.org/) |
| création de fichiers PDF | |
| printer | imprimante |
| netcard | informations sur les cartes réseaux (spécifique windows) |
| random | génération de nombres aléatoires |
| registry | écrire/lire une clé de la base de registre (spécifique windows) |
| rsa | encryption asymétrique |
| service | Services Windows - processus d'arrière-plan (spécifique windows) |
| shortcut | installation de programmes, créer un shortcut sur le bureau |
| smtp | envoi d'e-mails par protocole smtp |
| sorting | tri de tableaux (bubblesort, heapsort, quicksort) |
| sound | microphone et haut-parleur |
| strings | chaines de caractères (strcpy, sprintf, ..) |
| system | informations système (nom du PC, mémoire, nbre de CPUs) |
| tcpip | connection réseau par tcpip (ipv4 et ipv6) |
| text | stockage d'un texte composé de lignes |
| thread | threads parallèles, synchronisation, timers |
| tracing | fichiers de trace |
| url | url internet |
| utf | conversion entre ascii, utf-8 et utf-16 |
| vpeg | compression video pour images avec peu de mouvement |
| webcam | interface pour source video |
| win | interface utilisateur pour créer des fenêtres, boutons, listbox, .. |
| xml | lecture de fichiers XML |
| zip | compression de données : zip, unzip |
| win/windows | interface bas-niveau avec Windows |
| win/directx11 | interface bas-niveau avec DirectX 11 |
| win/direct_show | interface bas-niveau avec DirectShow |
Le "Safe-C Reference Manual" est une description normalisée du langage Safe-C destiné aux gens qui souhaitent développer un compilateur Safe-C.